Laravel 中间件替换索引中没有模型[App\Tornament]的查询结果

Laravel 中间件替换索引中没有模型[App\Tornament]的查询结果,laravel,Laravel,我最近犯了这个错误。我调试了它,它甚至没有进入我的索引方法 所以,我想从日志来看,这是一个替代性的发现,但我真的不知道问题出在哪里 以下是日志的例外情况: Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Tournament]. in /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src

我最近犯了这个错误。我调试了它,它甚至没有进入我的索引方法

所以,我想从日志来看,这是一个替代性的发现,但我真的不知道问题出在哪里

以下是日志的例外情况:

Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\Tournament]. 
in /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:311
Stack trace:
#0 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(801): Illuminate\Database\Eloquent\Builder->firstOrFail()
#1 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(39): Illuminate\Routing\Router->substituteImplicitBindings(Object(Illuminate\Routing\Route))
#2 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#3 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#4 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(65): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#5 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#6 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#7 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#8 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#9 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#10 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#11 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#12 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#14 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#15 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#16 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#17 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#18 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(644): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#21 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(618): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#22 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(596): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#23 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(267): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#24 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#25 /Users/julien/Documents/Proyectos/laravel/vendor/proengsoft/laravel-jsvalidation/src/RemoteValidationMiddleware.php(53): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#26 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Proengsoft\JsValidation\RemoteValidationMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /Users/julien/Documents/Proyectos/laravel/vendor/barryvdh/laravel-debugbar/src/Middleware/Debugbar.php(51): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#29 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Barryvdh\Debugbar\Middleware\Debugbar->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#32 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#35 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(149): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#36 /Users/julien/Documents/Proyectos/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#37 /Users/julien/Documents/Proyectos/laravel/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#38 /Users/julien/.composer/vendor/laravel/valet/server.php(106): require('/Users/julien/D...')
#39 {main}
代码:

路线如下:

Route::group(['middleware' => ['auth']],
function () {
      Route::get('tournaments/deleted', 'TournamentController@getDeleted');
    });
以下是路线:

+--------+-----------+-------------------------------------------------------------------------------+----------------------------+----------------------------------------------------------------------------+----------------------------+
    | Domain | Method    | URI                                                                           | Name                       | Action                                                                     | Middleware                 |
    +--------+-----------+-------------------------------------------------------------------------------+----------------------------+----------------------------------------------------------------------------+----------------------------+
    |        | POST      | tournaments                                                                   | tournaments.store          | App\Http\Controllers\TournamentController@store                            | web,auth,ownTournament     |
    |        | GET|HEAD  | tournaments                                                                   | tournaments.index          | App\Http\Controllers\TournamentController@index                            | web,auth                   |
    |        | GET|HEAD  | tournaments/create                                                            | tournaments.create         | App\Http\Controllers\TournamentController@create                           | web,auth,ownTournament     |
    |        | GET|HEAD  | tournaments/deleted                                                           |                            | App\Http\Controllers\TournamentController@getDeleted                       | web,auth,ownTournament     |
    |        | POST      | tournaments/{tournamentId}/trees                                              | storeAllTree               | App\Http\Controllers\PreliminaryTreeController@store                       | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournamentSlug}/invite/{token}                                   |                            | App\Http\Controllers\ChampionshipController@create                         | web                        |
    |        | DELETE    | tournaments/{tournament}                                                      | tournaments.destroy        | App\Http\Controllers\TournamentController@destroy                          | web,auth,ownTournament     |
    |        | GET|HEAD  | tournaments/{tournament}                                                      | tournaments.show           | App\Http\Controllers\TournamentController@show                             | web,auth                   |
    |        | PUT|PATCH | tournaments/{tournament}                                                      | tournaments.update         | App\Http\Controllers\TournamentController@update                           | web,auth,ownTournament     |
    |        | GET|HEAD  | tournaments/{tournament}/edit                                                 | tournaments.edit           | App\Http\Controllers\TournamentController@edit                             | web,auth,ownTournament     |
    |        | GET|HEAD  | tournaments/{tournament}/invite                                               |                            | App\Http\Controllers\InviteController@create                               | web,auth                   |
    |        | POST      | tournaments/{tournament}/invite/{invite}/categories                           |                            | App\Http\Controllers\ChampionshipController@store                          | web                        |
    |        | GET|HEAD  | tournaments/{tournament}/register                                             |                            | App\Http\Controllers\TournamentController@register                         | web                        |
    |        | POST      | tournaments/{tournament}/teams                                                | teams.store                | App\Http\Controllers\TeamController@store                                  | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/teams                                                | teams.index                | App\Http\Controllers\TeamController@index                                  | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/teams/create                                         | teams.create               | App\Http\Controllers\TeamController@create                                 | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/teams/{team}                                         | teams.show                 | App\Http\Controllers\TeamController@show                                   | web,auth                   |
    |        | PUT|PATCH | tournaments/{tournament}/teams/{team}                                         | teams.update               | App\Http\Controllers\TeamController@update                                 | web,auth                   |
    |        | DELETE    | tournaments/{tournament}/teams/{team}                                         | teams.destroy              | App\Http\Controllers\TeamController@destroy                                | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/teams/{team}/edit                                    | teams.edit                 | App\Http\Controllers\TeamController@edit                                   | web,auth                   |
    |        | POST      | tournaments/{tournament}/users                                                | tournament.users.store     | App\Http\Controllers\CompetitorController@store                            | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/users                                                | tournament.users.index     | App\Http\Controllers\CompetitorController@index                            | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/users/create                                         | tournament.users.create    | App\Http\Controllers\CompetitorController@create                           | web,auth                   |
    |        | DELETE    | tournaments/{tournament}/users/{user}                                         | users.destroy              | App\Http\Controllers\CompetitorController@destroy                          | web,auth                   |
    |        | PUT|PATCH | tournaments/{tournament}/users/{user}                                         | tournament.users.update    | App\Http\Controllers\CompetitorController@update                           | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/users/{user}                                         | tournament.users.show      | App\Http\Controllers\CompetitorController@show                             | web,auth                   |
    |        | GET|HEAD  | tournaments/{tournament}/users/{user}/edit                                    | tournament.users.edit      | App\Http\Controllers\CompetitorController@edit                             | web,auth                   |
    +--------+-----------+-------------------------------------------------------------------------------+----------------------------+----------------------------------------------------------------------------+----------------------------+
web.php

Route::group(['middleware' => ['auth']], 
function () {

    Route::resource('tournaments', 'TournamentController', ['names' => ['index' => 'tournaments.index', 'show' => 'tournaments.show', 'create' => 'tournaments.create', 'edit' => 'tournaments.edit', 'store' => 'tournaments.store', 'update' => 'tournaments.update']]);
    Route::resource('/tournaments/{tournament}/teams', 'TeamController', ['names' => ['index' => 'teams.index', 'create' => 'teams.create', 'edit' => 'teams.edit', 'store' => 'teams.store', 'update' => 'teams.update']]);
    Route::get('testtesttest/deleted', 'TournamentController@getDeleted');


    Route::resource('tournaments/{tournament}/users', 'CompetitorController', ['names' => ['index' => 'tournament.users.index', 'show' => 'tournament.users.show', 'create' => 'tournament.users.create', 'edit' => 'tournament.users.edit', 'store' => 'tournament.users.store', 'update' => 'tournament.users.update']]);
    Route::delete('tournaments/{tournamentId}/categories/{championshipId}/users/{userId}/delete', 'CompetitorController@deleteUser');
    Route::put('tournaments/{tournamentId}/categories/{championshipId}/users/{userId}/confirm', 'CompetitorController@confirmUser');
    Route::get('tournaments/{tournament}/invite', 'InviteController@create');
});
知道会是什么吗????以前,它工作得很好

firstOrFail()是一种方法,如果没有行与给定条件匹配,它将抛出
ModelNotFound
异常。因为这是在路由中发生的,这表明Laravel正在尝试向路由中注入一个模型我猜您当前的URL要么有无效的比赛id,要么完全丢失了一个。当Laravel达到指定的标准时,它将在此实例中失败。

firstOrFail()是一种方法,如果没有行与给定的标准匹配,它将抛出一个
ModelNotFound
异常。因为这是在路由中发生的,这表明Laravel正在尝试向路由中注入一个模型我猜您当前的URL要么有无效的比赛id,要么完全丢失了一个。当Laravel达到a时,它将在此实例中失败。

请参阅

如果您在routes文件中使用资源控制器,则任何其他路由都需要在此之前进行

在您的情况下,您需要执行以下操作:

// supplemental/additional routes first
Route::get('tournaments/deleted', 'TournamentController@getDeleted');

// then the resource
Route::resource('tournaments', 'TournamentController', ['names' => ['index' => 'tournaments.index', 'show' => 'tournaments.show', 'create' => 'tournaments.create', 'edit' => 'tournaments.edit', 'store' => 'tournaments.store', 'update' => 'tournaments.update']]);
这可防止路由器尝试将
锦标赛/已删除的
加载为
锦标赛。使用
已删除的
作为锦标赛ID显示
路由。如果资源控制器前面有
已删除的
路由,则Laravel将首先匹配该路由(如果可以),如果不匹配,则继续。在您的情况下,它在进入
tournames/deleted
之前与
tournames/{tournames}
匹配,请参见

如果您在routes文件中使用资源控制器,则任何其他路由都需要在此之前进行

在您的情况下,您需要执行以下操作:

// supplemental/additional routes first
Route::get('tournaments/deleted', 'TournamentController@getDeleted');

// then the resource
Route::resource('tournaments', 'TournamentController', ['names' => ['index' => 'tournaments.index', 'show' => 'tournaments.show', 'create' => 'tournaments.create', 'edit' => 'tournaments.edit', 'store' => 'tournaments.store', 'update' => 'tournaments.update']]);

这可防止路由器尝试将
锦标赛/已删除的
加载为
锦标赛。使用
已删除的
作为锦标赛ID显示
路由。如果资源控制器前面有
已删除的
路由,则Laravel将首先匹配该路由(如果可以),如果不匹配,则继续。在您的情况下,它在进入
锦标赛/已删除的
锦标赛之前匹配到
锦标赛/{tourbank}

没有模型[App\tourbank]的查询结果
——没有任何结果。问题是什么?我的代码中没有first或Fail,也许如果你发布了代码,我们就会知道。正如我在帖子中所说的,这个错误甚至没有进入我的代码…但我可以显示代码的任何部分,但控制器不值得,因为第一行中的dd没有执行
没有模型[App\Tournament]的查询结果
——没有任何结果。问题是什么?我的代码中没有first或Fail可能如果你发布了代码,我们就会知道。正如我在帖子中所说的,这个错误甚至没有进入我的代码…但我可以显示代码的任何部分,但控制器不值得,因为第一行中的dd没有执行添加的路由定义,我在URL中没有参数:(您确定没有其他路由冲突和/或覆盖此路由吗?所有相关信息都表明,在路由绑定替换过程中失败。已发布的路由列表已添加路由定义,我在URL中没有参数:(您确定没有其他路由冲突和/或覆盖此路由吗?所有相关信息都表明,在路由绑定替换过程中失败。已发布的路由列表