簡體   English   中英

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

當我在視圖上訪問$pubData時, rsc_faulty_publications表中的字段pub_year ..現在正在顯示。我想按年打印出版物。 當當前年份的出版物排在最前時,它們將以循環方式打印..所以我想要的是通過循環從$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){在此處打印您想要的內容}

終於自己解決了。.應該用這個問題標記引導程序..但這不是因為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++;
} ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM