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


Codeigniter - How to retrieve specific data on view after getting result array from model

所以这是模型 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_publications表有一个字段pub_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 } ?>

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

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

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

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

从模型获取值后说$data['value']=$this->model1->getValue((;现在你可以传递你获得的值来查看这样的页面$this->load->view('viewpagename',$data(;
现在,在视图页面中,您可以使用传递 .ie 值的数组名称轻松访问它。所以在视图页面中做 foreach($value as $val({在此处打印您想要的内容}

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