【问题标题】:How do I get all the records in the view from foreach in controller?如何从控制器中的 foreach 获取视图中的所有记录?
【发布时间】:2018-12-22 08:35:49
【问题描述】:

我正在使用 CodeIgniter,我从模型中获取 member_id 并发送到 foreach 以获取 member_id 的相关数据。

$getMemberDetails['getAllMember']=$this->Member_model->getAllMember($member_id);//getting output is like 1,2,4,6,7

foreach ($getMemberDetails['getAllMember'] as $m_id) {
$getMemberDetails['getAllData']=$this->Member_model->getAllData($m_id->member_id);
    }

 $this->load->view('member/profile',$getMemberDetails);

foreach 的输出是:(有很多列我只是分享一个例子)

Array ( [0] => stdClass Object ( [member_id] => 1 [first_name] => asdfgh ) ) 

Array ( [0] => stdClass Object ( [member_id] => 2 [first_name] => poiuyty ) ) 

从我发送到查看以显示记录的 foreach 获取输出后。

在视图中

<?php $post=$getAllData; 
    print_r($post);//here I am getting all the record?>
foreach($post as $key => $value)
{
    echo $value->first_name;
}
?>

如何获取视图中的所有记录?你能帮我解决这个问题吗?

【问题讨论】:

    标签: php codeigniter-3


    【解决方案1】:

    你总是用最后的内容覆盖数据,构建一个数据数组并分配它......

    $allData = [];
    foreach ($getMemberDetails['getAllMember'] as $m_id) {
        $allData[] = $this->Member_model->getAllData($m_id->member_id)[0];
    }
    $getMemberDetails['getAllData'] = $allData;
    

    我假设getAllData() 正在返回一个匹配记录的数组,所以即使只有 1 条记录它仍然会返回一个数组。使用[0] 表示提取您期望的第一条记录。

    【讨论】:

    • 我得到了输出,我也得到了 View 的错误。我显示的是个人数据,所以我尝试了 first_name;我得到错误“消息:试图获取非对象的属性”。我应该使用 foreach 吗?
    • 如果您遇到此类错误,请始终尝试print_r(),这有助于了解您在$sec 中得到了什么。 foreach 可能是最好的选择,但看看输出给你什么。
    • 看上面的示例输出,你可能需要echo $sec[0]-&gt;first_name;
    • 让我再试一次。给我一些时间检查
    • 如果我删除了您的控制器代码,那么它可以正常工作,但会获取视图中的最后一条记录。如果我使用您的控制器代码,那么我会在视图中收到该错误。
    【解决方案2】:

    尝试在您的代码中使用[]

        foreach ($getMemberDetails['getAllMember'] as $m_id) {
        $getMemberDetails['getAllData'][] = $this->Member_model->getAllData($m_id->member_id);
            }
    

    在您的视图文件中,您可以使用以下代码访问此数组。

    $allData = $getAllData;
    
    foreach($allData as $key => $value)
    {
        echo $value->first_name;
    }
    

    【讨论】:

    • 我得到了输出,我也得到了 View 的错误。我显示的是个人数据,所以我尝试了 first_name;我得到错误“消息:试图获取非对象的属性”。我应该使用 foreach 吗?
    • @user9437856 我已经编辑了我的代码。希望对你有帮助。
    • 我尝试了同样的方法,但仍然出现错误。消息:试图获取非对象的属性
    • 如果我从控制器中删除 [],那么我会得到它,但只得到最后的记录
    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2012-01-04
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多