3 回答

TA貢獻1796條經(jīng)驗 獲得超7個贊
您將 slug 傳遞到 URL 中:
<a?href="{{$post->slug}}"
但嘗試使用 ID 在控制器中查找帖子:
public?function?DetailofPost($id)
如果你想始終使用 slug 作為標(biāo)識符,你需要通過將你的路由更改為以下方式來告訴 Laravel:
Route::get('/{post:slug}',?'PostController@DetailofPost');
然后更改控制器功能以自動加載帶有該 slug 的帖子:
public?function?DetailofPost(App\Post?$post)
然后在控制器中,您不需要設(shè)置,$PostDetails
因為您將擁有變量$post
。
這稱為路由模型綁定。

TA貢獻1900條經(jīng)驗 獲得超5個贊
您href
應(yīng)該包含完整的網(wǎng)址,而不僅僅是您的$post->slug
.
更改href
為url("/{$post->slug}")
,假設(shè)您想要的網(wǎng)址類似于http://yoursite.com/title-of-my-post
請參閱文檔: https: //laravel.com/docs/7.x/urls#introduction

TA貢獻1883條經(jīng)驗 獲得超3個贊
@foreach($PostDetails as $PostDetail) //this is my detail page
<h1>{{PostDetail->title}}</h1>
<div class="single_page_content"> <img class="img-center" src="/storage/{{
$PostDetail->image}}" alt="">
<blockquote> {{PostDetail->body}}</blockquote>
@endforeach
我的邏輯是錯誤的。在我的控制器中,我將其設(shè)置為我的控制器從數(shù)據(jù)庫中獲取帖子的ID,而不是通過ID相關(guān)的數(shù)據(jù)庫列(例如“slug”或“title”)在詳細信息頁面上填充它們,正如你們所看到的,不需要使用@foreach,這里是我從 PostDetail.blade.php 更新的代碼
<div class="single_page">
<h1>{{$PostDetails->title}}</h1>
<div class="single_page_content"> <img class="img-center" src="/storage/{{
$PostDetails->image}}" alt=""> </div>
<a> {{$PostDetails->body}} </a>
- 3 回答
- 0 關(guān)注
- 207 瀏覽
添加回答
舉報