-1
Hi, guys! I’m new in Laravel and wanted to ask a question about the validations.
This is my controller. When I call the Validator
, i am passing the arrays to Rules, messages and Attributes.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpFoundation\Response;
use App\Validators\ContatoValidator;
use App\Models\Contato;
class FaleConoscoController extends Controller
{
private $app;
public function __construct(){
$this->app= App::getFacadeRoot();
}
public function send(Request $request){
$validator = Validator::make($request->all(), ContatoValidator::rules, ContatoValidator::messages, ContatoValidator::attributes);
if ($validator->fails()) {
return response() -> json($validator->errors(), Response::HTTP_BAD_REQUEST);
}else{
//$model =
}
}
}
Below my class Contactovalidator with arrays:
namespace App\Validators;
class ContatoValidator{
const rules = [
'mensagem' => 'required|max:500',
'assunto' => 'required|max:255',
'remetente.nome' => 'required|max:255',
'remetente.email' => 'required|max:255|email',
'remetente.estado' => 'nullable|max:255',
'remetente.cidade' => 'nullable|max:255',
];
const messages = [
'required'=> 'O campo :attribute não foi preenchido',
'same' => 'The :attribute and :other must match.',
'max' => 'O campo :attribute deve ter no máximo :max caracteres.',
'between' => 'The :attribute value :input is not between :min - :max.',
'in' => 'The :attribute must be one of the following types: :values',
'email' => 'O e-mail inserido não é válido.'
];
const attributes = [
'remetente' => [
'nome' => 'nome',
'email' => 'email',
'estado' => 'estado',
'cidade' => 'cidade',
],
];
}
I want to remetente.nome
return as only nome
. And so on in the other sender attributes.
However, the result is as follows::
{
"assunto": [
"O campo assunto não foi preenchido"
],
"remetente.nome": [
"O campo remetente.nome não foi preenchido"
],
"remetente.email": [
"O campo remetente.email não foi preenchido"
]
}
If you can post your form?
– novic
I did not make form, I am making the requisition via Postman:
– Ana Carol
{
 "remetente": {
 "email": "",
 "cidade": "Vitória",
 "estado": "Espírito Santo"
 
 },
 "assunto": "",
 "mensagem": "Mensagem enviada por e-mail"
}
– Ana Carol
is that there is difference when it is by form, I will put my answer that is right
– novic
You need to read this: https://answall.com/help/whats-reputation
– novic
Also good to read: https://answall.com/help/minimal-reproducible-example
– novic