【问题标题】:Laravel call different controller for same resource routeLaravel 为相同的资源路由调用不同的控制器
【发布时间】:2021-05-26 14:08:42
【问题描述】:
我在我的 api.php 中创建了一个资源控制器和路由。现在我想像 Route 2 一样创建一条新路线。问题是当我点击第二条路线时,它显示没有找到资源错误,因为它被称为我的测试。显示方法。我想同时使用这两条路线有什么解决方案吗?
Route 1 => Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');
Route 2 => Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');
【问题讨论】:
标签:
php
laravel
laravel-routing
【解决方案1】:
将新的子路由放在资源的顶部/上方。应该是这样的:
Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');
Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');
【解决方案2】:
更改线路顺序。 Laravel 使用从顶部开始的第一行是合适的候选者。
Route 1 => Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');
Route 2 => Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');