我最近开始学习Laravel。在这样做的过程中,我已经开始从网络上完成教程,包括从youtube。在一个这样的教程中,我一直在开发一个非常基本的博客。我在研究鼻涕虫的时候遇到了一些僵局。出于某种原因,它就是不想为我工作!
当在我的'routes.php'文件中输入以下代码时,我注意到大括号'{'和'}'自动转换为URL编码,并显示单词“slug”。此外,单词posts后面的'/'无处可见。这意味着链接将读取为“http:[域名]/posts/%7Bslug%7D[文章名称]”
Route::get('/posts/{slug}', [
'as' => 'post-show',
'uses' => 'PostController@getIndex'
]);
如果我这样修改代码,问题就部分解决了:
Route::get('/posts/{slug?}', [
'as' => 'post-show',
'uses' => 'PostController@getIndex'
]);
“slug”一词不再显示为URL的一部分。然而,由于某种原因,蛞蝓前面的'/'仍然不可见,好像被问题中的蛞蝓吃掉了!它现在是“http:[domain name]/posts**%7Bslug%7D**[article name]”。
如果有人能帮忙的话,我会很感激你给我指个方向。谢谢你。
1条答案
按热度按时间ruarlubt1#
根据您的评论,您调用操作的方式是不正确的。试试这个视图代码:
我不是在终端附近测试这个,但它应该让你更接近。此代码解决的问题是:
1.要使用route name 生成URL,请使用
route
。您的代码使用了action
。1.要传递一个参数并填充“{slug}”,需要将一个数组作为第二个参数传递给
route
(以及action
)。您的代码既没有传递数组,也没有将值传递到函数中。1.您在
Markdown::parse
之后缺少}
,但这可能是复制和粘贴错误。