だから私は管理インターフェースに取り組んでいます。私は次のようにルートを設定しています:
Route::controllers([
'admin' => 'AdminController',
]);
それから私はいくつかの方法でコントローラーを持っています:
public function getEditUser($user_id = null)
{
// Get user from database and return view
}
public function postEditUser($user_id = 0, EditUserRequest $request)
{
// Process any changes made
}
ご覧のとおり、メソッドインジェクションを使用してユーザー入力を検証しているため、URLは次のようになります。
http://example.com/admin/edit-user/8697
GETリクエストはGETメソッドに送られ、POSTリクエストはPOSTメソッドに送られます。問題は、新しいユーザーを作成する場合、IDがないことです。
http://examplecom/admin/edit-user/
次に、エラーが発生します(言い換えます):
コントローラに渡される引数2は、EditUserRequestのインスタンスである必要があり、指定されていない
だから今私は新しいユーザーを作成するためにそれを機能させるために0のIDを渡していますが、このアプリはまだ始まったばかりなので、アプリケーション全体でこれを行う必要がありますか?検証メソッド、およびオプションでパラメーターを渡すためのより良い方法はありますか?どんな知恵も高く評価されます。
パラメータの順序を逆にして、オプションのパラメータを終了することができます。
public function postEditUser(EditUserRequest $request, $user_id = null)
{
}
LaravelはEditUserRequest
最初の問題を解決し、user_idがない場合はそれ以上何も渡さないため、デフォルト値が有効になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加