У меня есть простая форма, которая отправляет значение контроллеру:

<form action="{{route('mollie.payment')}}" method="post"  >
@csrf
{{--    <input name="text" type="text">--}}


<button type="submit"  name="test" value="23.00">Send</button>
</form>

Это значение будет статическим, и это значение не может быть изменено. Но, конечно, это можно легко изменить в инструментах разработчика Chrome.

Как я могу лучше реализовать это?

Я думал сделать такую ​​проверку:

   public function preparePayment(Request $request)
   {
    
    $this->validate($request,[
        'test' => '230.00'
    ]);
...

Но не работает:

BadMethodCallException
Method Illuminate\Validation\Validator::validate230.00 does not exist.

Как хорошо сохранить эту ценность?

-1
PinPiguin 4 Май 2021 в 15:59

1 ответ

Лучший ответ

Используйте запрос формы laravel для проверки полезной нагрузки запроса.

Вы можете создать новый запрос формы с помощью команды

php artisan make:request StorePaymentRequest

Затем перейдите к вновь созданному файлу в папке app \ Http \ Requests и напишите здесь все правила.

<?php

namespace App\Http\Requests\StorePaymentRequest;

use Illuminate\Foundation\Http\FormRequest;=

class GetPayoutRequest extends FormRequest
{

    public function rules()
    {
        return [
            'status' => 'numeric|between:23.00,23.00'
    }
}

Используйте этот StorePaymentRequest в методе контроллера preparePayment.

public function preparePayment(StorePaymentRequest $request)
{
    $requestPayload = $request->validated();
    dd($requestPayload);
}

Теперь запрос может появиться здесь, если он успешно прошел проверку, иначе ValidationException будет брошен автоматически.

1
Abdullah Shakir 4 Май 2021 в 13:17