2014-11-23 187 views
0

我試着去得到使用的代碼數據庫中的數據(在我的控制器)從數據庫Laravel獲取數據

public function viewStock() 
    { 
     $stocks = Stocks::where('ID', '=', 2); 
     if($stocks->count()) 
     { 
      $stocks = $stocks->first(); 
      return View::make('trucks') 
       ->with('stocks', $stocks); 
     } 

    } 

出於某種原因,經過與IF語句然後輸出我的輸出頁面上NULL哪些包含代碼:

@extends('layout.main') 
@section('content') 
<p>{{ var_dump($stocks->stockcontent) }}</p> 
@stop 

我想它沒有計算任何東西,因爲它返回NULL,但它仍然通過if語句?

編輯
當我使用var_dump($stocks) 它打印:http://i.imgur.com/RbvbNdr.png

+0

你試過傾銷'股票'嗎?爲什麼你有'股票::其中('ID','=',2)'和'股票 - >第一()','ID'不是主鍵? – 2014-11-23 21:35:11

+0

是的,它是一個主鍵,如果我不把$股票 - >第一()在它給出這個錯誤:http://i.imgur.com/Sbv4CSU.png,我也試過其他列。 – Batzz 2014-11-23 21:38:00

+0

是的,你需要更優雅地使用口才 - '$ stock = Stocks :: findOrFail(2)'會做你想做的事情。如果您想手動檢查它包含的內容,可以執行'$ stock = Stocks :: find(2)'並檢查它包含的內容。此外,我建議你安裝laralvel調試欄,這樣你可以看到什麼是在你的查詢返回甚至轉儲數據會話,看看發生了什麼。 – 2014-11-23 21:43:16

回答

0

那是因爲你從來沒有發出查詢。所以,當你做$stocks->count(),你實際上發送COUNT()作爲你的SELECT條款。這是你應該怎麼做:

public function viewStock() { 
    try { 
     $stocks = Stocks::findOrFail(2); 

     return View::make('trucks') 
        ->with('stocks', $stocks); 
    } catch (ModelNotFoundException $e) { 
     // Handle model not found 
    } 
} 
0

伊夫固定它,我不知道是否有解決它,但我的修正,是因爲當我第一次插入數據到DATABSE我沒有默認的任何其他方式created_at和updated_at是laravel生成的,當我使用腳本將一些數據放入其中時,會自動添加這些字段,並且每當我嘗試打印已填充created_at和updated_at的數據時,它都會工作。