當我在 Laravel 中輸入詳細資訊頁面時,它給出了一個錯誤。我不明白錯誤來自哪里。我的代碼如下。問題出在哪里?實際上它說它是空的,但它需要從控制器端的 $blog 中提取資料。
控制器:
public function show($id)
{
$blog = Blog::where('id',$id)->first();
return view('front.detail',compact('blog'));
}
路線/web.php:
Route::prefix('{lang?}')->middleware('locale')->group(function() {
Route::get('/', [MainController::class, 'index'])->name('home');
Route::get('/about', [MainController::class, 'about'])->name('about');
Route::resource('/blogs', MainController::class)->only([ 'show']);
});
detail.blade.php:
<li>
<h2><a href="">{{$blog->title}}</a></h2>
<p>{!! $blog->text !!}</p>
</li>
uj5u.com熱心網友回復:
如果您想通過您find不使用的主列where和列獲取模型:
public function show($id)
{
$blog = Blog::find($id);
return view('front.detail',compact('blog'));
}
然后,find可以回傳模型(因此是一個object)或null,所以在你的情況下,它不是通過 ID 找到模型。
你應該使用的是findOrFail,如果它沒有找到模型,它會拋出一個例外:
public function show($id)
{
$blog = Blog::findOrFail($id);
return view('front.detail',compact('blog'));
}
然后可以繼續除錯為什么找不到
uj5u.com熱心網友回復:
當我使用此代碼時,它會重定向到 404 頁面。
public function show($id)
{
$blog = Blog::find($id);
return view('front.detail',compact('blog'));
}
當我使用此代碼時,它會重定向到 404 頁面。
public function show($id)
{
$blog = Blog::findOrFail($id);
return view('front.detail',compact('blog'));
}
uj5u.com熱心網友回復:
您似乎沒有將博客 ID 與您的 URL 一起傳遞:
Route::resource('/blogs', MainController::class)->only([ 'show']);
嘗試將您的路線更改為:
Route::resource('/blogs/{id}', MainController::class)->only([ 'show']);
您的 URL 應該類似于(其中 5 是博客 ID):
http://yourdomain.com/blogs/5
您還可以使用系結:
// Route
Route::get('/blogs/{blog}', [MainController::class, 'show']);
public function show(Blog $blog)
{
return view('front.detail', ['blog' => $blog]);
}
更多資訊可以在這里找到: 路由模型系結
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/520815.html
