Codeigniter - 如何在从模型获取结果数组后从视图中检索特定数据

时间:2015-11-21 13:01:19

标签: php arrays codeigniter

所以这是模型Publicationdata中的函数,它根据控制器提供的作者ID将结果数组发送到控制器 - >

public function getSpPubData($tId)
{   
    $this->db->order_by("pub_year", "desc"); 
    $q = $this->db->get_where('rsc_faculty_publications', array('pub_author_id' => $tId));
    $error = $q->num_rows() > 0 ? FALSE : TRUE;

    if ($error === FALSE)
    {
        return $q->result();
    }
    else{
        return $error;   
    }
}

现在在控制器上我将数组保存为 -

$data['pubData'] = $this->Publicationdata->getSpPubData("10006);

当我在视图上访问rsc_faulty_publicationspub_year表有一个字段$pubData ..现在正在查看..我想逐年打印出版物。当今年的出版物将在最顶层时,它们将被打印出来。所以我想要的是从$pubData通过循环获取逐年出版物..视图是这样的 -

<?php 
for($i=0;$i<sizeof($pubData);$i++){ ?>
  <div class="panel panel-info">
    <div class="panel-heading" data-toggle="collapse" data-parent="#accordion<?php echo $pubData[$i]->pub_year; ?>" href="#year<?php echo $pubData[$i]->pub_year; ?>" title="Click to expand/collapse">
        <h4 class="panel-title">Publication Year: <?php echo $pubData[$i]->pub_year; if($pubData[$i]->pub_year==date('Y')){echo " (".sizeof($pubData)." Publications until now)";}?></h4>
    </div>
    <div id="year<?php echo $pubData[$i]->pub_year; ?>" class="panel-collapse collapse">
        <div class="panel-body">
            <?php while($pubData[$i]->pub_year==$pubData[$i+1]->pub_year){
            ?>
            <div class="well well-info">
                <p><?php echo $pubData[$i]->pub_title; ?></p>
                <p><?php echo $pubData[$i]->pub_authors; ?></p>
                <p><?php echo $pubData[$i]->pub_publisher; ?></p>
            </div>
            <?php
            }?>
        </div>
    </div>
  </div>              
<?php } ?>

2 个答案:

答案 0 :(得分:0)

首先在控制器中加载视图文件并传递数据。

$this->load->view('view_file', $data);

在视图文件中使用以下代码来检索数据。

foreach($pubData->brands as $brand): ?>

答案 1 :(得分:0)

最后自己解决了..应该用问题标记引导程序..但是没有,因为SO ppl喜欢向下投票!

<?php $i=0;
$n=0;
$brands = array('info','warning','primary','success');
$len=sizeof($pubData);
while($i<$len){ ?>
  <?php if($i==0||$i-1!==-1 && $pubData[$i]->pub_year!==$pubData[$i-1]->pub_year){ ?>                  
  <div class="panel panel-<?php echo $brands[$n];?>">
    <div class="panel-heading" data-toggle="collapse" data-parent="#accordion1" href="#year<?php echo $pubData[$i]->pub_year; ?>" title="Click to expand/collapse">
        <h4 class="panel-title">Publication Year: <?php echo $pubData[$i]->pub_year; if($pubData[$i]->pub_year==date('Y')){echo " (".sizeof($pubData)." Publications until now)";}?></h4>
    </div>
    <div id="year<?php echo $pubData[$i]->pub_year; ?>" class="panel-collapse collapse">
        <div class="panel-body">
            <?php
            }?>
                <div class="well well-<?php echo $brands[$n];?>">
                <p><?php echo $pubData[$i]->pub_title; ?></p>
                <p><?php echo $pubData[$i]->pub_authors; ?></p>
                <p><?php echo $pubData[$i]->pub_publisher; ?></p>
            </div>
  <?php if($i==$len-1 || $i+1!==$len && $pubData[$i]->pub_year!==$pubData[$i+1]->pub_year){
      if($n==3){$n=0;}else{$n++;} ?>  
        </div>
    </div>
  </div >              
  <?php } $i++;
} ?>