Ich versuche meine Hand beim Lernen Laravel.Gemeinsame Validierungsfunktion über mehrere Controller in Laravel
Ich habe einen Benutzer Form, die auf dieser Strecke schreiben
Route::post('users/add','[email protected]')->middleware('admin');
Die Speicherfunktion in der Userscontroller eine andere Funktion aufruft validateForm genannt, die im Grunde die Eingabe von der Form bestätigt, wie so
class usersController extends Controller
{
/*
*Store a user in database
*/
function store(){
$input=Request::all();
// create the validation rules ------------------------
$rules = array(
'name' => 'required', // just a normal required validation
'lastname' => 'required', // just a normal required validation
'email' => 'required|email|unique:users', // required and must be unique in the users table
'password' => 'required',
);
$validationResponse=$this->validateForm($input,$rules);
if($validationResponse=="passed"){
$user=new \App\User;
$user->name=$input['name'];
$user->email=$input['email'];
$user->lastname=$input['lastname'];
$user->password=\Hash::make($input['password']);
$user->userlevel=isset($input['isAdmin'])?1:0;
$user->save();
return redirect('users');
}
else{
return Redirect::to('users/create')
->withErrors($validationResponse)->withInput();
}
}
/*
*validate user form input
*/
function validateForm($input,$rules){
// do the validation ----------------------------------
// validate against the inputs from our form
$validator = Validator::make($input, $rules);
// check if the validator failed -----------------------
if ($validator->fails()) {
// get the error messages from the validator
$messages = $validator->messages();
return $messages;
}
else{
return 'passed';
}
}
}
Nun, das ist in Ordnung für den Zugriff vom userController, aber was ist, wenn ich einen anderen Controller besitze projectsController und ich möchte auf die gleiche Funktion zugreifen, dh validateForm
Wo sollte ich diese gemeinsame Funktion setzen und wie kann ich von jedem Controller darauf zugreifen?