2 回答
TA贡献1853条经验 获得超9个赞
异常告诉您没有Content
与条件匹配的对象。从文档:
找不到例外
有时,如果找不到模型,您可能希望抛出异常。这在路由或控制器中特别有用。该
findOrFail
和firstOrFail
方法将检索查询的第一个结果; 但是,如果未找到结果,Illuminate\Database\Eloquent\ModelNotFoundException
将抛出a。
检查您的where
状况:
$topbar = Content::where('slug', 'topbar')->firstOrFail();
确保您在contents
(?)表中有一条记录slug=topbar
(请记住,这是区分大小写的)。您在评论之一中说您确定,因此请使用Tinker在Artisan Console中进行检查:
$ php artisan tinker> Content::where('slug','topbar')- >count();
这应该输出:
[!]在此Tinker会话中,将“用法”别名为“ App \ Content”。
=> 1 //或更多。
要获取记录,您可以尝试改用此方法(在您的控制器中):
$topbar = Content::where('slug', 'LIKE', '%topbar%')->firstOrFail();
同样,您的句子很可能只是您当前代码的示例,但如果不是,请确保在where子句中传递实际值:
$topbar = Content::where('slug', 'LIKE', request('slug'))->firstOrFail();
TA贡献1898条经验 获得超8个赞
查询构建器的find()方法可以返回Model实例;如果在数据库中未找到任何记录,则返回null。因此,您必须通过首先检查用户是否存在来处理此问题。如果他这样做,则可以显示他的头像,否则,可以显示登录按钮。
您的代码有点混乱,我建议您不要将逻辑与视图代码混在一起。您应该让用户进入控制器,然后再将其传递给查看者
$topbar = Content::where('slug', 'topbar')->get()->toArray();
return view('welcome')->with([
'logo' => Arr::get($topbar->content, 'logo', asset('images/logo.png')),
'quote' => Arr::get($topbar->content, 'quote'),
'quote_author' => Arr::get($topbar->content, 'quote_author')
]);
- 2 回答
- 0 关注
- 167 浏览
添加回答
举报