[英]Laravel Too few arguments to function
我有一個簡單的應用程序,用於使用 Laravel 生成一些代碼,現在我正在嘗試使用 url 將唯一 ID 傳遞給我的 controller。
這是應該接收 ID 的方法:
public function code($code_id)
{
$settings = Setting::find($code_id);
return view('pages.settings.code', compact('settings'));
}
這是我傳遞 ID 的視圖文件:
<a href="{{ route('settings.code', $settings->code_id) }}">
{{ __('Generate Code') }}
</a>
當我檢查 URL 時,我得到:
http://127.0.0.1:8001/settings/code?K1zMXRZG4
這是我的路線:
Route::get('settings/code', [
'as' => 'settings.code',
'uses' => 'SettingController@code'
]);
Route::resource('settings', "SettingController");
但我收到以下錯誤:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR)
Too few arguments to function App\Http\Controllers\SettingController::code(), 0 passed and exactly 1 expected
我的代碼有什么問題?
您需要定義任何應該傳遞給路由中方法的參數:
Route::get('/settings/code/{code_id}', 'MyController@code')
->name('settings.code');
這會將$code_id
傳遞給 controller 中的code()
方法。
如果你沒有在你的路由中定義參數,它將作為參數傳遞給Request
-object 而不是 - 就像所有查詢字符串一樣 - 你需要在你的 controller 中像這樣獲取它:
$code_id = $request->query('code_id');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.