【发布时间】:2016-04-01 19:08:49
【问题描述】:
我是 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)。
但仍然没有运气......不确定我是否误解了某些事情的工作原理或发生了什么......所以如果有人对我可能做错了什么有任何建议,或者有什么可以尝试的,我会非常感谢! :)
【问题讨论】:
标签: laravel laravel-5 eloquent laravel-routing laravel-5.2