我是 Laravel 的相对初学者(使用 5.2.3 版),并且一直在学习 Laracasts 的教程,然后做了一些我自己的实验。
我成功设置了一个通过 ID 从表中获取项目的路由,如下所示
Route::get('/wiseweasel/{id}', 'WiseweaselController@singleArticle');
为简单起见,控制器简单地 dd 的文章
public function singleArticle($id)
{
$article = ww_articles::find($id);
dd($article);
}
这工作得很好——我访问例如 /wiseweasel/2 并使用 id2 获取记录的内容。
所以,然后我想使用记录中的 slug 字段而不是 id。因为我知道 ID 方法有效,所以我尝试修改此路由和控制器(也尝试重新创建,但均未成功)所以我现在有:
Route::get('/wiseweasel/{slug}', 'WiseweaselController@singleArticle');
和
public function singleArticle($slug)
{
$article = ww_articles::find($slug);
dd($article);
}
第二条记录的 slug 是“secondarticle”。因此,访问 url /wiseweasel/secondarticle,我希望看到与之前删除的相同记录。相反,我最终得到了 null。
更奇怪的是,使用原始 id 路由 (/wiseweasel/2) 仍然返回记录......当我从路由和控制器中删除了所有跟踪时,我希望这会失败......
这让我想知道这是否可能是一些奇怪的缓存问题?我试过了
php工匠路线:清除
以防路由被缓存。我还尝试重新启动 Apache 和 MySql(我都使用 XAMMP)。
但是仍然没有运气......不确定我是否误解了某些事情的工作原理或正在发生的事情......所以如果有人对我可能做错了什么有任何建议,或者有什么可以尝试的,我将非常感激!:)