如何从Controller中的foreach获取视图中的所有记录?

时间:2018-12-22 08:35:49

标签: php codeigniter-3

我正在使用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;
}
?>

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

2 个答案:

答案 0 :(得分:1)

您总是会用最后的内容覆盖数据,构建数据数组并分配给它...

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

我假设getAllData()返回的是匹配记录的数组,因此,即使只有1条记录,它仍将返回一个数组。使用[0]意味着提取您期望的1条记录。

答案 1 :(得分:0)

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

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