【发布时间】:2021-05-25 05:47:18
【问题描述】:
我正在尝试将补丁路由添加到routes/api.php,但即使在尝试route:cache 之后我也会收到“找不到路由”。它已在 route:list 中注册,并且该范围内的其他路由正在运行。
这是我的代码:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::group([
'prefix' => 'v1',
'namespace' => 'App\Http\Controllers\Api\V1',
], function() {
Route::group([
'prefix' => '/users',
], function() {
Route::get('/{user}', 'UsersController@show');
Route::patch('/{user}/updateStatus', 'UsersController@updateStatus');
});
});
这是我在控制器操作中的代码:
<?php
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller {
public function updateStatus(Request $request, User $user) {
# my logic
}
}
路由注册为/api/v1/users/{user}/updateStatus,但我得到404。
顺便说一句,我使用的是 laravel 8 和 php 7.3
【问题讨论】:
-
Welcome to SO ... 可能是
user没有退出并且您使用的路由模型竞价因此它会返回 404 错误 -
您发送的是 JSON 原始数据还是表单数据?
-
模型绑定工作正常,我也有一个显示动作,模型绑定在这种情况下工作得很好。我也使用原始 json 格式。