2014-11-21 67 views
0

我試圖從數據庫中獲取以前的記錄,所以我可以鏈接到它。Laravel上一個和下一個記錄,返回對象

該函數中的$previous_comic只返回published_at字段,我無法做任何事情。

public function index() 
{ 
    $newest_comic = Comic::orderBy('published_at', 'DESC')->first(); 

    $previous_comic = Comic::where('published_at', '<', $newest_comic->published_at)->max('published_at'); 

    return View::make('comics.index')->with('newest_comic', $newest_comic)->with('previous_comic', $previous_comic); 
} 

我所需要的對象,所以我可以用{{ $previous_comic->slug }}

現在它只是返回

「試圖獲得非對象的屬性。」

我該怎麼做?

謝謝!

回答

0
$comics = Comic::orderBy('published_at', 'DESC')->take(2)->get(); 

$newest_comic = $comics[0]; 

$previous_comic = $comics[1]; 
0

我能想到3種可能的情況。也許其中一個將幫助你:

1)您的查詢是否返回一個對象數組,在這種情況下,您是否需要循環訪問該屬性?

2)你是否確實在數據庫中創建了'slug'字段?

3)$ previous_comic肯定是一個對象而不是數組? IE應該使用$ previous_comic ['slug']

我很熟悉Laravel,但沒有大量的經驗,我懷疑沒有。 3不是你的問題的原因。

希望這會有所幫助。如果您有任何額外的細節,請隨時提供。

Lew。

0

你也應該想想情況下,噹噹前記錄是第一個

$comic = Comic::findOrFail($id); 
    $comics = Comic::orderBy('id')->get(); 

    $current = $orgs->search($org); 

    $prev = ($current == 0) ? $comics->count() - 1 : $current - 1; 
    $prevComic = $orgs->get($prev);