Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter php MVC_Php_Codeigniter_Model View Controller - Fatal编程技术网

Codeigniter php MVC

Codeigniter php MVC,php,codeigniter,model-view-controller,Php,Codeigniter,Model View Controller,我有一个名为“News”的表,有三列:“id”、“title”和“details” 我在codeigniter模型类(称为“News\u model”)中有一个函数(“get\u entry”) 函数get_entry() { $this->load->database(); 返回$this->db->select('id,title,details')->from('news'); $data['newsarray']=$this->db->row_array(); 返回$data['news

我有一个名为“News”的表,有三列:“id”、“title”和“details”

我在codeigniter模型类(称为“News\u model”)中有一个函数(“get\u entry”)

函数get_entry()
{
$this->load->database();
返回$this->db->select('id,title,details')->from('news');
$data['newsarray']=$this->db->row_array();
返回$data['newsarray'];
}
我正在连接数据库,所以这不是问题所在。我想通过使用以下代码从控制器文件调用该函数,从get_entry()返回一个iterable数组。我想使用下面的代码将其推入另一个数组(称为“$data['theNews']”)

foreach($this->News\u model->get\u entry()as$key=>$value){
数组推送($data['theNews'],$value->title);
}

我一直在使用此()上的代码作为模板(特别是函数“get_last_ten_entries()”,但我认为我与上面发布的代码非常接近。我将非常感谢您的帮助。

关于您的代码:

在get_entry函数中有两个“return”:

function get_entry()
{
    $this->load->database();
    // First
    return $this->db->select('id,title,details')->from ('news');
    $data['newsarray'] = $this->db->row_array();      
    // Second
    return $data['newsarray'];
}
将其更改为:

function get_entry()
{
    $this->load->database();
    $query = $this->db->select('id,title,details')->from('news');
    $data['newsarray'] = $query->row_array();      
    return $data['newsarray'];
}
现在应该可以了

一些建议:

不要再使用Codeigniter 2

如果您计划返回整个表列,我建议您使用以下代码进行查询:

$query = $this->db->get('news', 1, 20);
其中1,20是极限

现在您可以得到以下结果:

return $query->result();
一个简单的例子:

function get_entry()
{
    $this->load->database();
    $query =  $this->db->get('news', 1, 20);
    return $query->result();
}
此方法以对象数组的形式返回查询结果,您可以在控制器中这样打印:

$news_array = $this->News_model->get_entry();
foreach ($news_array as $news)
{
        echo $news->id;
}
有关更多示例,请参阅查询生成器


还有一个建议,如果全局需要,只需在application/config/autoload.php中自动加载数据库库。

将函数中的代码更改为此即可:

function get_entry()
    {
        $this->load->database();
        $query =  $this->db->get('news');
        //return $query->result();

        foreach ($query->result() as $row)
        {
            echo "</br>";   
            echo $row->id;
            echo "</br>";       
            echo $row->title;
            echo "</br>";   
            echo $row->details;
            echo "</br>";   
        }

    }
函数get_entry()
{
$this->load->database();
$query=$this->db->get('news');
//返回$query->result();
foreach($query->result()作为$row)
{
回声“
”; echo$row->id; 回声“
”; echo$行->标题; 回声“
”; echo$row->details; 回声“
”; } }
像这样调用函数会将其打印出来:


$news\u array=$this->news\u model->get\u entry();

您的
get\u entry
函数仅返回一行。如果您要迭代多行,请重写函数,使其返回10个或更多结果。请发布您在
$data['newsarray'中获得的内容
内置代码片段仅适用于JavaScript/HTML/CSS…您不能在OP中运行PHP。已删除。谢谢。在这里您可以找到最新的framework文档:,。星号不是代码的一部分。只需使用注释来指示行。
//您可以发布错误吗?您使用的是哪种代码?第一个还是最后一个e例如?由于我将“get_entry”函数更改为您发布的函数,所以在运行php页面时我没有收到任何错误,但现在,当我尝试从控制器调用此函数时,如下图所示,我什么也没有得到。我想将函数返回的每一行添加到一个名为“theNews”的数组中,但首先,我只想回显下面的内容我把添加到数组中的一行注释掉了,如你所见。$data['theNews']=array();foreach($key=>value){echo$key;//array\u push($data['theNews'],$value->title)}好的,明白了,但我不明白你在使用哪个函数,是这个吗?:函数get\u entry(){$this->load->database();$query=$this->db->get('news',1,20);return$query->result();}是的,我在函数中使用了该代码。我相信它工作正常