从模型到控制器获取数据

时间:2012-08-24 20:58:07

标签: codeigniter

我确实有一个问题:我无法将数据从模型传递给控制器 你可以看到我的一些代码,请帮帮我。 它不起作用!

这是我的模特“mymodel.php”

 ....

$query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1");
    if($query){
    foreach ($query->result() as $row);
    }
    $t = "EXAMPLE/{$row->code}";
    function wandad() {
        return $t;
    }
.....

这是我的控制器mycont.php

 ...
 $this->load->model('mymodel');

$data['new'] = $this->Mymodel->wandad();
$this->load->view('myview',$data);
 ...

这是我的观点myview.php

 ....
 echo $new; 
 .....

4 个答案:

答案 0 :(得分:1)

以下是模型中的几个问题

  • 您的Foreach功能无法执行任何操作
  • $t与<{1}}
  • 不在同一名称空间
  • 功能wandad未定义到模型类

我不确定你想用wandad()功能获得什么,但这是一种模式。

wandad()

然后进入你的控制器,改为:

function yourFunction()
{
    /* This will return the full query as an array */
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1")->result_array();
    /* Store variable in the same class */
    $this->t = "EXAMPLE/".$query[0]['code'];
/* Close yourFunction() */
}
public function wandad() {
    return $this->t;
}

答案 1 :(得分:1)

很明显,你的模型写得不正确并且纠正了这个简单的做法

  

1。)我在$ t

上设置了一个默认值      

2。)我把查询&gt;&gt;循环内部函数

     

wandad

所以它可以在从控制器调用后执行

function wandad() {
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1");
    $t = "";
    if($query){

       foreach ($query->result() as $row){
          $t = "EXAMPLE/{$row->code}".'<br>';
       }
     }

    return $t;
    }

答案 2 :(得分:0)

@Touki他的foreach实际上做了一些事情。它将使用从查询返回的最后一行设置变量$ row。不是最好的方法......但这是一种方式。更好的方法是在查询中使用限制。

答案 3 :(得分:0)

您的代码中有一个小错误@ Ernesto.that

foreach ($query->result() as $row){
      $t. = "EXAMPLE/{$row->code}".'<br>';
   }

但你的代码很简单