2012-08-24 98 views
0

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

这是我的模型 “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; 
..... 

回答

1

显然你的模型不正确地写入,并corrent这个简单的做到这一点

1)我把默认值在$ T

2)我把查询>>循环在内部功能

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; 
    } 
1

这里有几个问题到你的模型

  • 你的foreach功能并不做任何事情
  • $t是不是在同一个命名空间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; 
} 

然后到控制器中,做到这一点,而不是:

$this->load->model('mymodel'); 
$this->mymodel->yourFunction(); 
$data['new'] = $this->mymodel->wandad(); 
$this->load->view('myview',$data); 
+0

我foreach循环做了一些工作,我敢肯定。 –

+0

我的道歉,但对我来说,'foreach($ query-> result()as $ row);'不代表任何动作 – Touki

+0

好的,谢谢您的评论。 但我的问题没有解决! –

0

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

0

。在你的代码@ Ernesto.that一个小失误被

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

,但你的代码只是漂亮

相关问题