簡體   English   中英

Laravel 太少 arguments 到 function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM