3 回答
TA贡献1796条经验 获得超7个赞
您将 slug 传递到 URL 中:
<a href="{{$post->slug}}"
但尝试使用 ID 在控制器中查找帖子:
public function DetailofPost($id)
如果你想始终使用 slug 作为标识符,你需要通过将你的路由更改为以下方式来告诉 Laravel:
Route::get('/{post:slug}', 'PostController@DetailofPost');
然后更改控制器功能以自动加载带有该 slug 的帖子:
public function DetailofPost(App\Post $post)
然后在控制器中,您不需要设置,$PostDetails
因为您将拥有变量$post
。
这称为路由模型绑定。
TA贡献1900条经验 获得超5个赞
您href
应该包含完整的网址,而不仅仅是您的$post->slug
.
更改href
为url("/{$post->slug}")
,假设您想要的网址类似于http://yoursite.com/title-of-my-post
请参阅文档: https: //laravel.com/docs/7.x/urls#introduction
TA贡献1883条经验 获得超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
我的逻辑是错误的。在我的控制器中,我将其设置为我的控制器从数据库中获取帖子的ID,而不是通过ID相关的数据库列(例如“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 关注
- 143 浏览
添加回答
举报