我试图从数据库中获取以前的记录,以便链接到它。
此函数中的$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 }}
现在它只返回
&#34;试图获得非对象的属性。&#34;
我怎么能这样做?
谢谢!
答案 0 :(得分:0)
$comics = Comic::orderBy('published_at', 'DESC')->take(2)->get();
$newest_comic = $comics[0];
$previous_comic = $comics[1];
答案 1 :(得分:0)
我可以想到3种可能的情况。也许其中一个会帮助你:
1)您的查询是否返回了一个对象数组,在这种情况下,您是否需要循环访问它们才能访问该属性?
2)您是否确实在数据库中创建了“slug”字段?
3)$ previous_comic肯定是一个对象而不是数组吗? IE应该使用$ previous_comic ['slug']
我熟悉Laravel,但没有大量经验,我怀疑没有。 3不是你问题的原因。
希望这会有所帮助。如果您有任何额外的细节,请随时提供。
路易斯。
答案 2 :(得分: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);