我正在顯示從數據庫到 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 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消