Мое пользовательское сообщение Запрос валидатора не работает Laravel - PullRequest
0 голосов
/ 19 февраля 2019

Я использую подтверждение запроса, но не получаю сообщение от запроса.Посмотри мой код и увидишь мою ошибку.Важна только функция магазина, которая работает хорошо, если все поля заполнены, но если какое-либо поле не заполнено, я не получаю свое специальное сообщение из запроса.Для незаполненного поля я не выдаю ошибку только на домашней странице laravel.

Это мой файл запроса

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class CarRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'car_type' => 'required',
            'mark' => 'required',
            'model' => 'required',
            'fuel' => 'required',
            'circuit' => 'required',
            'chassis' => 'required|numeric',
            'bill_type' => 'required',
            'first_registration' => 'required|date',
            'km' => 'required|numeric',
            'structure' => 'required',
            'motor_vehicle_check' => 'required|boolean',
            'warranty' => 'required|boolean',
            'year' => 'required|date',
            'import_vehicle' => 'required|boolean',
            'know_damage' => 'required',
            'car_accessories' => 'required',
            'email' => 'required|email'
        ];
    }

    public function messages()
    {
        return [
            'car_type.required' => 'A car_type is required',
            'mark.required'  => 'A mark is required',
            'model.required' => 'A model is required',
            'fuel.required' => 'A fuel is required',
            'circuit.required' => 'A circuit is required',
            'chassis.required' => 'A chassis is required',
            'bill_type.required' => 'A bill_type is required',
            'first_registration.required' => 'A first_registration is required',
            'km.required' => 'A km is required',
            'structure.required' => 'A structure is required',
            'motor_vehicle_check.required' => 'A motor_vehicle_check is required',
            'warranty.required' => 'A warranty is required',
            'year.required' => 'A year is required',
            'import_vehicle.required' => 'A import_vehicle is required',
            'know_damage.required' => 'A know_damage is required',
            'car_accessories.required' => 'A car_accessories is required',
            'email.required' => 'A email is required'
        ];
    }
}

А это мой код контроллера

<?php

namespace App\Http\Controllers;

use App\Car;
use App\CarImages;
use App\Http\Requests\CarRequest;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Illuminate\Support\Facades\Config;



class CarController extends Controller
{


    public function index()
    {
        $cars = Car::with(['images'])
            ->orderByDesc('car.created')
            ->get();

        return response()->json($cars, 200);
    }


    public function search($name){
        $cars = Car::where('mark', '=' , $name)->get();
        return $this->response($cars);
    }


    public function create()
    {
        //
    }


    public function show($id)
    {
        $car = School::with(['images'])->find($id);
        if (!$car) {
            return response()->json(['message' => 'No Car found'], 404);
        }
        return response()->json($car, 200);
    }


    public function store(CarRequest $request)
    {
            $car = Car::create([
                'car_type' => $request->input('car_type'),
                'mark' => $request->input('mark'),
                'model' => $request->input('model'),
                'fuel' => $request->input('fuel'),
                'circuit' => $request->input('circuit'),
                'chassis' => $request->input('chassis'),
                'bill_type' => $request->input('bill_type'),
                'first_registration' => $request->input('first_registration'),
                'km' => $request->input('km'),
                'structure' => $request->input('structure'),
                'motor_vehicle_check' => $request->input('motor_vehicle_check'),
                'warranty' => $request->input('warranty'),
                'year' => $request->input('year'),
                'import_vehicle' => $request->input('import_vehicle'),
                'know_damage' => $request->input('know_damage'),
                'car_accessories' => $request->input('car_accessories'),
                'email' => $request->input('email')
            ]);

            return response()->json([
                'message' => 'Your car has been successfully added',
                'car' => $car
            ],201);
        }


    public function destroy($id)
    {
        $car = Car::destroy($id);
        return response()->json($id);
    }
}

1 Ответ

0 голосов
/ 19 февраля 2019

Я использую подтверждение запроса, но не получаю сообщение от запроса.

Ожидая ответа json, не забудьте добавить этот заголовок при выполнении ваших запросов:

   Accept: Application/json // <--

Если я хочу установить в моем пользовательском сообщении пример km должен быть числовым, как это работает в сообщениях?

Вам необходимо указать свое сообщение для каждого правила, подобного этому.Давайте сделаем это для проверки km:

MyCustomRequest.php

public function rules()
{
    return [
     // ...
     // 'first_registration' => 'required|date',
        'km' => 'required|numeric',  // <---
     // 'structure' => 'required',
     // ...
    ];
}

Учитывая, что km имеет две проверки, просто добавьте еще один элемент вmessages() функция:

MyCustomRequest.php

public function messages()
{
    return [
        // ...
        'km.required' => 'A km is required',
        'km.numeric' => 'The km needs to be numeric, dude!', // <---
        // ...
    ];
}

По этому последнему предмету проверьте документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...