我最近开始学习Laravel。在这样做的过程中,我开始从网络上完成教程,包括来自youtube的教程。在一个这样的教程中,我一直在开发一个非常基础的博客。在使用slugs时,我遇到了一些僵局。出于某种原因,它只是不想为我工作!
当在我的'routes.php'文件中输入以下代码时,我注意到大括号'{'和'}'会自动转换为URL编码,并显示单词“slug”。此外,帖子一词后面的'/'无处可见。这意味着链接将显示为“http:[域名] /帖子/ %7Bslug%7D [文章名称]”
Route::get('/posts/{slug}', [
'as' => 'post-show',
'uses' => 'PostController@getIndex'
]);
如果我更改代码,问题就会得到部分解决:
Route::get('/posts/{slug?}', [
'as' => 'post-show',
'uses' => 'PostController@getIndex'
]);
“slug”一词不再显示为URL的一部分。然而,由于某种原因,前面的'/'仍然不可见,好像被有问题的slu吃掉了!它现在显示为“http:[域名] /帖子**%7Bslug%7D ** [文章名称]”。
如果有人能伸出援助之手,我真的很感激指向正确的方向。谢谢。
答案 0 :(得分:0)
根据您的评论,您调用操作的方式不正确。试试这个观点代码:
@if ($posts->count())
@foreach ($posts as $post)
<article>
<h2><a href="{{ route('post-show', ['slug' => $post->slug]) }}">{{ $post->title }}</a></h2>
{{ Markdown::parse(Str::limit($post->body, 157)) }}
<a href="{{ route('post-show', ['slug' => $post->slug]) }}">read more…</a>
</article>
@endforeach
@endif
我不在附近测试这个,但它应该让你更接近。这段代码解决的问题是:
route
。您的代码使用的是action
。route
(和action
一样)。您的代码既没有传递数组也没有将值传递给函数。}
之后错过了Markdown::parse
,但这可能是副本&amp;粘贴错误。如果这有助于你,请记得投票并标记为已接受!