加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

laravel路由无法访问,报404,No query results for model [App&

发布时间:2020-12-14 19:57:17 所属栏目:大数据 来源:网络整理
导读:今天遇到了一个问题,在routes/web.php中配置了路由,但始终无法访问该路由,一直报404。 Route::resource('gift_packs','GiftPacksController',['only' = ['index','show','create','store','update','edit','destroy']]);Route::get('gift_packs/test','Gi

今天遇到了一个问题,在routes/web.php中配置了路由,但始终无法访问该路由,一直报404。

Route::resource('gift_packs','GiftPacksController',['only' => ['index','show','create','store','update','edit','destroy']]);
Route::get('gift_packs/test','GiftPacksController@test')->name('gift_packs.test');

然后我在app/Exceptions/Handler.php文件中,修改render()方法:

public function render($request,Exception $exception)
{
    dd($exception);
    return parent::render($request,$exception);
}

把异常打印出来:

No query results for model [AppModelsGiftPack].

先通过?php artisan route:list 查看路由列表

| Domain | Method                                 | URI                                                   | Name                            | 
|        | GET|HEAD                               | gift_packs/{gift_pack}                                | gift_packs.show                 | 
|        | DELETE                                 | gift_packs/{gift_pack}                                | gift_packs.destroy              | 
|        | PUT|PATCH                              | gift_packs/{gift_pack}                                | gift_packs.update               | 
|        | GET|HEAD                               | gift_packs/{gift_pack}/edit                           | gift_packs.edit                 | 
|        | GET|HEAD                               | gift_packs/test                                       | gift_packs.test                 | 

原因是laravel路由访问检测是从上到下的。

针对同路径,gift_packs/{gift_pack} 和 gift_packs/test,当我们访问 /gift_packs/test时,路由 gift_packs/{gift_pack} 已经解析了。

字符串 'test' 无法获取GiftPack模型数据,所以就报错了。

解决方法是修改路由配置的上下位置:

Route::get('gift_packs/test','GiftPacksController@test')->name('gift_packs.test');
Route::resource('gift_packs','destroy']]);

这样就可以了。

?

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读