Android 发表于 2017-3-15 16:05:43

Closer 发表于 2017-3-15 16:03
1. 你是在手冊的哪一頁看到這種用法?
$nji = $this->load->library('testclass');



$test = new Testclass();   这种用法会报错的 

Closer 发表于 2017-3-15 16:07:47

Android 发表于 2017-3-15 16:05
$test = new Testclass();   这种用法会报错的 

你需要的是兩件事:
1. 看 CI 手冊怎麼使用相關函數
2. 理解 PHP 的基礎使用
 

Android 发表于 2017-3-15 16:08:19

Closer 发表于 2017-3-15 16:03
1. 你是在手冊的哪一頁看到這種用法?
$nji = $this->load->library('testclass');



用return不出数据的,你看 我说的 问题一  贴的代码

Closer 发表于 2017-3-15 16:12:18

Android 发表于 2017-3-15 16:08
用return不出数据的,你看 我说的 问题一  贴的代码

你的問題一,前半段正確,後半段錯了


CI 是在控制器端用 $this->load->view('blogview.html', $data); 這種方式來載入視圖
相同的,在控制器 echo 也是可行的 (但不建議)
你載入的 loadfun() 是 return; 既沒有 view() 也沒有 echo
自然而然沒有任何東西


 

Android 发表于 2017-3-15 16:21:10

Closer 发表于 2017-3-15 16:12
你的問題一,前半段正確,後半段錯了




其一:不明白你这话--你載入的 loadfun() 是 return; 既沒有 view() 也沒有 echo,
其二:我就是这么做的啊- $this->load->view('blogview.html', $data); 這種方式來載入視圖。

 这不是有返回值嘛 
  public function loadfun() {

       // return"通过 加载数据";
       echo"通过  加载数据";
    }
 
  下面属于view层的:
   <?php

    echo $nji ->loadfun();
   ?>
   
  

Closer 发表于 2017-3-15 16:25:54

Android 发表于 2017-3-15 16:21
其一:不明白你这话--你載入的 loadfun() 是 return; 既沒有 view() 也沒有 echo,
其二:我就是这么 ...
你問題一的 code 只剩下這樣


<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
    public function index(){
      $this -> load->library('testclass');
      $this ->testclass->loadfun();
    }
}

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Testclass{

    protected$CI;
    public function _construct() {
       $this -> $CI =& get_instance();
    }

    public function testlass() {
       echo $this ->loadfun();
    }

    public function loadfun() {
      return"通过 this 加载数据";
    }
}

你試圖訪問 Welcome 的 index 方法
他載入了類名 testclass (3.x+ 要注意大小寫)
然後試圖呼叫 loadfun()
此時你的 loadfun() 是用 return
又因 $this->testclass->loadfun(); 沒用任何變數承接 loadfun() 所 return 回的值

於是 index() 既沒有 view() 也沒有 echo
理論上你問題一的畫面應該是白的

 

Hex 发表于 2017-3-15 16:38:20

Closer 发表于 2017-3-15 16:03
1. 你是在手冊的哪一頁看到這種用法?
$nji = $this->load->library('testclass');


你不要试图把对象特别是 CI 里面的类库传递给视图,你可以理解成 CI 不支持(或不推荐)你这样做,正确的做法就是在控制器里获取 loadfun() 的返回值,然后把这个值传给视图。

Android 发表于 2017-3-15 16:42:20

Closer 发表于 2017-3-15 16:25
你問題一的 code 只剩下這樣




是的,这是我的原因,少加echo整体应该是 echo $this ->testclass->loadfun();    这样用return 就可以了
其二: 那在view层 怎么处理呢?

Closer 发表于 2017-3-15 16:56:59

Hex 发表于 2017-3-15 16:38
你不要试图把对象特别是 CI 里面的类库传递给视图,你可以理解成 CI 不支持(或不推荐)你这样做,正确的做 ...

這點我表示理解與支持

只是 Android 連基本都不懂了
只能先循序漸進地跟他說

 

Closer 发表于 2017-3-15 16:59:29

Android 发表于 2017-3-15 16:42
是的,这是我的原因,少加echo整体应该是 echo $this ->testclass->loadfun();    这样用return 就可 ...

接下來你只要參考 CI 手冊的視圖 http://codeigniter.org.cn/user_guide/general/views.html#id6
或 Hex 所提供的範例即可 http://codeigniter.org.cn/forums/forum.php?mod=redirect&goto=findpost&ptid=24149&pid=102164&fromuid=34802
页: 1 2 [3] 4
查看完整版本: 动态添加数据问题