使用 sanctum id 引數運行 activate 方法我看到 id 引數沒有傳遞到 activate 控制操作中。在 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 Telescope 中,我看到了詳細資訊:
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",
提前致謝 !
uj5u.com熱心網友回復:
你需要使用路由系結需要更換{id}到{ad}
Route::put('ads/{ad}/activate', [AdController::class, 'activate']);
如果您的問題仍未解決,您可以手動進行。將此代碼添加到boot方法RouteServiceProvider
Route::model('ad', Ad::class);
uj5u.com熱心網友回復:
如評論中所述,要使隱式系結作業,路由中的 uri 段必須與方法的引數(變數)名稱匹配,例如
更改{id}為{ad}使其與方法的$ad引數匹配activate:
Route::put('ads/{ad}/activate', [AdController::class, 'activate']);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/367069.html
上一篇:洗掉搜索詞后顯示所有內容
下一篇:在父模型中排序
