Laravel 函数参数太少
Laravel Too few arguments to function
我有一个使用 Laravel 生成代码的简单应用程序,现在我正尝试使用 url.
将唯一 ID 传递给我的控制器
这是应该接收 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
传递给控制器中的 code()
方法。
如果您没有在路由中定义参数,它将作为参数传递到 Request
-object 中 - 就像所有查询字符串一样 - 您需要在控制器中像这样获取它:
$code_id = $request->query('code_id');
我有一个使用 Laravel 生成代码的简单应用程序,现在我正尝试使用 url.
将唯一 ID 传递给我的控制器这是应该接收 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
传递给控制器中的 code()
方法。
如果您没有在路由中定义参数,它将作为参数传递到 Request
-object 中 - 就像所有查询字符串一样 - 您需要在控制器中像这样获取它:
$code_id = $request->query('code_id');