Não sei o que ocorre, mas não funcionou com a validação manual.
Segue o meu controller:
class ContactController extends Controller {
public function show(){
$subjects = Subject::all();
$subjects = $subjects->sortBy('name');
return view('pages.contact')->with('subjects', $subjects);
}
public function send(){
$params = Request::all();
$validator = Validator::make(Request::all(), [
'name' => 'required|min:10',
]);
if ($validator->fails()) {
return redirect('/contato')
->withErrors($validator)
->withInput();
}
$contact = Contact::create($params);
Mail::send('emails.contact-answer', ['contact' => $contact], function($message) use ($contact){
$message->to($contact->email, $contact->name)->subject($contact->subject->name);
});
Mail::send('emails.contact-receive', ['contact' => $contact], function($message) use ($contact){
$message->to('contato@comacomgula.com.br', 'Contato')->subject($contact->subject->name);
});
Session::flash('sended', 'ok');
return redirect('/contato');
}
}
Tentei sobrescrever o método response da classe ContactRequest, mas também não funcionou:
public function response(array $errors)
{
return Redirect::back()->withInput()->withErrors($errors);
}
Os erros aparecem corretamente após a alteração do método, mas o withInput() não retorna os campos para que o usuário continue preenchendo.
O que vocês acham que pode estar errado?
Esqueci de comentar antes, estou usando o Laravel 5.4 com o Blade.