【发布时间】:2022-01-04 15:28:59
【问题描述】:
使用 sanctum id 参数运行激活方法我看到 id 参数未传递到激活控制操作中。 在 routes/api.php 中:
Route::middleware('auth:sanctum')->group( function () {
Route::post('logout', [AuthController::class, 'logout']);
Route::resource('ads', AdController::class);
Route::put('ads/{id}/activate', [AdController::class, 'activate']);
});
在邮递员中,我将参数传递为http://server.com/api/ads/7/activate, 但问题是在 app/Http/Controllers/API/AdController.php :
public function activate(Request $request, Ad $ad)
{
\Log::info(varDump($ad->id, ' -1 activate $ad->id::')); // this parameter is null - and error next :
...
} // public function activate(Ad $ad)
在 Laravel 望远镜中我看到了细节:
Request Details
Time November 26th 2021, 5:08:08 PM (1:46m ago)
Hostname master-laptop
Method PUT
Controller Action App\Http\Controllers\API\AdController@activate
Middleware api, auth:sanctum
Path /api/ads/7/activate
Status 500
Duration 113 ms
IP Address 127.0.0.1
Memory usage 2 MB
Tags Auth:10
为什么id参数不对?
"laravel/framework": "^8.26.1",
"laravel/sanctum": "^2.8",
提前致谢!
【问题讨论】:
-
如果你希望隐式路由模型绑定发生,方法签名中的参数名称必须与路由参数名称匹配
-
以下是否回答了您的问题?如果是这样,请您将其标记为已接受:)