2016-08-31 17 views
0

因此,我正在爲用戶構建一個應用程序,以便能夠將遊樂設施上載到網站並使其可以被其他用戶查看。唯一的問題是,我的控制器顯然是不正常推變量的觀點讓我有讀取錯誤:CodeIgniter不會將變量推送到視圖

A PHP Error was encountered 
Severity: Notice 
Message: Undefined variable: ridesArray 
Filename: views/rides.php 
Line Number: 93 

我不太確定我在做什麼錯,但這裏是代碼。另外,因爲我知道它會被問到,是的,我的模型正在返回真實的數據。此外,視圖中的var_dump()返回null。而ridesArray()函數只是一個用從模型中收集的信息製作一個整潔的數組的工具。這裏的問題是變量沒有被髮送到視圖

更新:我已經添加了函數ridesArray()的代碼。此外,我忘了提,我也收到此錯誤:

Severity: Warning 
Message: Invalid argument supplied for foreach() 
Filename: views/rides.php 
Line Number: 96 

控制器:

function index(){ 
    $userrides = $this->RidesModel->getAllRides(); 
    $rideData = $this->ridesArray($userrides); 
    $ridesArray = array('ridesArray' => $rideData); 
    $this->load->view('rides', $ridesArray); 
} 
function ridesArray($data){ 
    $newarray = array(); 
    foreach($data as $object){ 
     $array = json_decode(json_encode($object), true); 

     $id = (int)$array['id']; 
     $title = $array['title']; 
     $date = $array['date']; 
     $ridetime = $array['ridetime']; 
     $saddress = $array['StartAddress']; 
     $scity = $array['StartCity']; 
     $sstate = $array['StartState']; 
     $szip = $array['StartZip']; 
     $ezip = $array['EndZipcode']; 
     $ecity = $array['EndCity']; 
     $image = $array['image']; 

     $newdata = array(
      'id' => $id, 
      'title' => $title, 
      'date' => $date, 
      'ridetime' => $ridetime, 
      'StartAddress' => $saddress, 
      'StartCity' => $scity, 
      'StartState' => $sstate, 
      'StartZip' => $szip, 
      'EndZipcode' => $ezip, 
      'EndCity' => $ecity, 
      'image' => $image 
     ); 
     array_push($newarray, $newdata); 
    } 
    return $newarray; 
} 

型號:

function getAllRides(){ 
    $sql = "select * from rides order by date"; 
    $query = $this->db->query($sql); 
    $result = $query->result(); 

    return $result; 
} 

查看:

<div class="container col-lg-12 col-md-12 col-sm-12 user-cont"> 
<ul class="container col-lg-10 col-md-10 col-sm-10 col-lg-offset-1 col-md-offset-1 col-sm-offset-1"> 

    <?php 
    var_dump($ridesArray); 

    if(isset($ridesArray)){ 
     foreach($ridesArray as $out){ 
      echo "<li>"; 
      echo "<h3>".$out['title']."</h3>"; 
      echo "<img class='img-responsive img-thumbnail' src=". base_url(). "uploads/".$out['image']."/>"; 
      echo "<p>".$out['date']." At ".$out['ridetime']. "</p>"; 
      echo "<p>Starts At ".$out['StartAddress']." ".$out['StartCity']." ".$out['StartZip']." "."</p>"; 
      echo "<p>Ends At ".$out['EndCity']." ".$out['EndZipode']."</p>"; 
      echo "<span class='glyphicon glyphicon-plus'></span>"; 
      echo "</li>"; 
     } 
    } 
    ?> 
</ul> 

+0

那麼,如果你這樣做呢? '$ data ['ridesArray'] = $ rideData; $ this-> load-> view('rides',$ data);' – Sparky

+0

try $ result = $ query-> result_array(); –

回答

0

這正是Sparky在他的評論中所說的。

變化

$ridesArray = array('ridesArray' => $rideData); 

$ridesArray['ridesArray'] = $rideData; 

這將擺脫錯誤的。

+0

我不確定我的評論是否是答案。我實際上認爲數組變量和共享相同名稱的內部鍵「ridesArray」是根本問題。 – Sparky

+1

您可否詳細說明如何使用這種替代方法來分配值有所作爲? – Sparky

+0

我剛試過這個。不知道爲什麼,但它仍然返回null。在配置文件或自動加載文件中是否有任何內容需要添加才能使其發揮作用,還是應該將這些內容發送到視圖中?我也試過做 $ ride ='ride' $ this-> load-> view('ride',$ ride); 然後在視圖中的var轉儲然後什麼都沒有發生仍然 –

相關問題