Validação de dados
É importante validar todos os dados vindos de formulários.
No método store (que é o form para Add Novo) do controller Clientes e no edit, que é o form de edição
public function store(Request $request)
{
$requestData = $request->all();
// Validação
$this->validate($request, [
'nome' => 'required|min:3|max:45',
'cpf' => 'min:11|max:11|unique:clientes',
'nascimento' => 'date|date_format:Y-m-d' // nullable| torna opcional
],[ // Mensagens
'nome.required' => ' O nome é obrigatório.',
'cpf.required' => ' O CPF é obrigatório.',
'cpf.min' => ' O CPF precisa ter 11 dígitos.',
'nascimento.date' => 'Nascimento precisa ter uma data válida e Y-m-d'
]);
Cliente::create($requestData);
Session::flash('flash_message', 'Cliente added!');
return redirect('clientes');
}
public function messages()
{
return [
'cpf.cpf' => 'CPF inválido'
];
}
public $rules = [
'nome' => 'required|min:3|max:45',
'cpf' => 'min:11|max:11|unique',
'nascimento' => 'date|date_format:Y-m-d',
'email' => 'required|email|unique:users, email,'.$id,
'password' => 'required|same:confirm-password',
];
numero => numeric
'email' => 'required|email|unique:clientes',
Validação via rules
Route::post('clientes', function()
{
// process the form here
// create the validation rules ------------------------
$rules = array(
'nome' => 'required|min:3|max:45',
'cpf' => 'min:11|max:11|unique:clientes',
'nascimento' => 'nullable|date|date_format:Y-m-d'
'email' => 'required|email|unique:clientes',
);
// do the validation ----------------------------------
// validate against the inputs from our form
$validator = Validator::make(Input::all(), $rules);
// check if the validator failed -----------------------
if ($validator->fails()) {
// get the error messages from the validator
$messages = $validator->messages();
// redirect our user back to the form with the errors from the validator
return Redirect::to('clientes')
->withErrors($validator);
} else {
// validation successful ---------------------------
// our cliente has passed all tests!
// let him enter the database
// create the data for our cliente
$cliente = new Cliente;
$cliente->nome = Input::get('nome');
$cliente->cpf = Input::get('cpf');
$cliente->nascimento = Input::get('nascimento');
$cliente->email = Input::get('email');
// save our cliente
$cliente->save();
// redirect ----------------------------------------
// redirect our user back to the form so they can do it all over again
return Redirect::to('clientes');
}
});
Comments fornecido por CComment