我試圖在Laravel 5上使用自定義請求來驗證通過發佈發送的輸入,但是當表單字段正常時,即。表單驗證正常,我的控制器的方法沒有被調用。這是一個錯誤?怎麼了?我知道這是可能的,因爲我曾經在另一個項目中這樣做過。我在這個項目中使用的是5.2.6版本,然後我認爲這是這個特定版本的問題,那是當我「切換回」到5.1,但編輯我的composer.json
,刪除vendor
文件夾,然後重新安裝與composer install
。自定義請求不調用表單驗證成功的控制器方法
我UserController中的內容:
//...
public function save(Requests\CreateUserRequest $request)
{
$user = new User();
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->username = $request->input('username');
$user->password = $request->input('password_confirmation');
//$user->profile_id = $request->input('profile');
$user->profile_id = 1;
$user->save();
return redirect()->route('get_user_read');
}
//...
CreateUserRequest:
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class CreateUserRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'profile' => 'required',
'name' => 'required',
'username' => 'required|unique:users,username',
'email' => 'required|email|unique:users,email',
'password' => 'required',
'password_confirmation' => 'required|same:password',
];
}
public function messages()
{
return [
'profile.required' => 'O campo perfil é obrigatório!',
'name.required' => 'O campo nome é obrigatório!',
'username.required' => 'O campo nome de usuário é obrigatório!',
'username.unique' => 'O nome de usuário já foi registrado!',
'email.required' => 'O campo email é obrigatório!',
'email.unique' => 'O email informado já foi registrado!',
'email.email' => 'O email informado não é válido!',
'password.required' => 'O campo senha é obrigatório!',
'password_confirmation.required' => 'O campo de confirmação de senha é obrigatório!',
'password_confirmation.same' => 'A confirmação de senha não confere com a senha informada!',
];
}
}
感謝。
請檢查「Requests \ CreateUserRequest」是否是您的請求文件的真實路徑 – BKF
因此,如果您在save函數中使用dd()請求,什麼都不會發生? –
爲了測試我的保存函數是否曾經被調用,我把'''return「」;'''放在其他所有內容之前;並且它從未被執行過。我應該看到一個空白頁面。正如我上面所說的,當我使用我的自定義請求來驗證表單輸入時,我的保存函數從不被調用。 –