私はこのコードをリファクタリングする必要があります。新しい関数のコードのリファクタリング、LARAVEL
新しい機能に検証コードを入れ、その機能を別の機能で使用する必要があります。 このコード
public function comprobarValidacion(\Request $request)
{
$validador = $this->validator($request::all());
$errors = $validador->errors()->all();
if(count($errors)):
return Redirect()->back()->withErrors($validador);
endif;
}
私はこの
public function postLogin(\Request $request)
{
$this->comprobarValidacion($request::all());
return Redirect()->back();
}
のように、各機能でそれを呼んでみてください、それは作品をdoesn't。しかし、私がcomprobarValidacionのコンテンツを任意の関数の中に置くと、コードは役に立ちます。
これは完全なコードです。
。
class AuthController extends Controller {
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $auth;
protected $redirectTo = '/dashboard';
//despues de loguear
protected $redirectAfterLogout = '/paginaporcrear';
public function __construct(Guard $auth)
{
// $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
// $this->middleware($auth);
$this->auth = $auth;
}
protected function validator(array $data)
{
$reglas = [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:1|confirmed',
];
$mensajes = [
'required' => 'El campo :attribute es requerido',
'email' => 'El campo :atribute tiene que tener formato de email',
];
return Validator::make($data, $reglas, $mensajes);
}
public function comprobarValidacion(\Request $request)
{
$validador = $this->validator($request::all());
$errors = $validador->errors()->all();
if(count($errors)):
return Redirect()->back()->withErrors($validador);
endif;
}
public function getRegistro()
{
return view('auth.register');
}
public function postRegistro(\Request $request)
{
$validador = $this->validator($request::all());
$errors = $validador->errors()->all();
if(count($errors)>0):
return Redirect()->back()->withErrors($validador);
endif;
$this->create($request::all());
\Session::flash('creado','El usuario '.$request::get('name').' ha sido creado exitosamente');
return Redirect()->back();
}
public function getLogin()
{
return view('auth.login');
}
public function postLogin(\Request $request)
{
// $validador = $this->validator($request::all());
// $errors = $validador->errors()->all();
// if(count($errors)):
// return Redirect()->back()->withErrors($validador);
// endif;
$this->comprobarValidacion($request::all());
return Redirect()->back();
} }
¿どうすればいいですか?