我正在显示从数据库到 show.blade.php 的数据,但这个问题显示以下是代码: BlockControllerpublic function show(Blog $id) { // $blogs = Blog::findOrfail($id); return view('blog.show', compact('blogs')); }显示.blade.php@section('content') <h3>{{ $blogs->title }}</h3> @endsectiondd($blogs) 的输出:我尝试了我得到的所有选项,但仍然不起作用..
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
具有该方法签名的$id是一个模型实例。Eloquent 模型实现Illuminate\Contracts\Support\Arrayable. 如果您将某个东西传递Arrayable给正在调用的find,findOrFail它会像您正在查找多条记录一样对待它并返回一个 Collection 。
您有一个集合而不是模型实例。
如果您的方法签名没有键入提示模型,那么它会更有意义,因为您将拥有“id”。如果您为这些方法键入提示模型,通常您会使用路由模型绑定。
路由模型绑定:
public function show(Blog $blog)
{
// $blog is the matching record
}
没有模型绑定,只获取参数:
public function show($blog)
{
// $blog is just the 'id' or what ever you decided to pass in the URL
}
您的路由有一个名为 name 的参数,blog因为您的资源名为“blog”。为了实现隐式路由模型绑定,您必须将参数名称与签名中的参数名称相匹配。
HUH函数
TA贡献1836条经验 获得超4个赞
在您的函数中show(Blog $id)
, $id 是 Blog::class 实例
接下来你需要做什么$blogs = Blog::findOrfail($id->id);
- 2 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消