Проверка переменных - PullRequest
       26

Проверка переменных

0 голосов
/ 26 сентября 2018

Я хочу создать проверочную переменную, так как я буду проверять тот же ввод, но с другим максимальным числовым значением.Так что это проблема, например, у меня есть валидация переменных с максимальным числом 400 или 1000. После того, как я введу 500 в поле, которое должно быть отклонено выше 400, оно работает отлично.Но после проверки 400 макс, и я попытался проверить поле, которое должно допускать до 1000, теперь оно ограничено 400.

Вот функция хранилища:

public function store(Request $request)
{
    $client_id = $request->client_id; 
    $client_package_id = $request->client_package_id;
    $sale_type_id = $request->sale_type_id;
    $max_topup_amount = $request->max_topup_amount;

    if($sale_type_id == 3){
        $validator = Validator::make($request->all(), [
            'amount' => 'numeric|min:0|max:' . $max_topup_amount,
        ]);

        if ($validator->fails()) {
            return redirect('/sales' . '/' . $client_id)
                        ->withErrors($validator)
                        ->withInput();
        }

        $Invoices = new Invoices;
        $Invoices->client_id = $client_id;
        $Invoices->sale_type_id = $sale_type_id;
        $Invoices->item_id = $client_package_id;
        $Invoices->total_price = $request->amount;
        $Invoices->status = 'Payment Pending';
        $Invoices->save();
    };

    return redirect('/sales' . '/' . $client_id);

Здесьэто вид:

@if(count($Client_Packages) > 0)
                            @foreach($Client_Packages as $c)
                                <tbody>
                                    <tr>
                                        <td>{{$c->id}}</td>
                                        <td>{{$c->package}}</td>
                                        <td>{{$c->balance}}</td>
                                        <td>{{$c->status}}</td>
                                        {!!Form::open(['action' => ['SalesController@destroy', $c->id], 'method' => 'POST'])!!}
                                        {{Form::hidden('_method', 'DELETE')}}
                                        {{Form::hidden('type', 'package')}}
                                        {{Form::hidden('status', $c->status)}}
                                        {{Form::hidden('client_id', $c->client_id)}}
                                        <td>
                                            <button type="button" class="btn btn-primary fa" data-toggle="modal" data-target="#topup{{$c->id}}">
                                                &#xf217;
                                            </button>  
                                            <input type="button" class="btn btn-success fa" value="&#xf218;" onclick="location.href = '/sales/{{$c->id}}';">
                                            {{Form::submit('&#xf2ed;', ['class' => 'btn btn-danger fas'])}}
                                        </td>
                                        {!!Form::close()!!}
                                    </tr>
                                </tbody>
                                @include('Sales.edit')
                            @endforeach
                        @else
                            <p>No Clients Found</p>
                        @endif

Вот модал, содержащий форму (Sales.edit):

{!! Form::open(['action' => 'InvoicesController@store', 'method' => 'POST']) !!}
<div class="modal fade" id="topup{{$c->id}}">
<div class="modal-dialog">
    <div class="modal-content">  
        <!-- Modal Header -->
        <div class="modal-header bg-success text-white">
            <h4 class="modal-title">Top up Package Serial No. {{$c->id}}</h4>
            {{Form::hidden('client_package_id', $c->id)}}
            <button type="button" class="close" data-dismiss="modal">&times;                                </button>
        </div>
        <!-- Modal body -->
        <div class="modal-body">
            <div class="row mt-3">
                <div class="col-lg-12">
                    <div class="row">
                        <div class="col-lg-12">
                            <div class="form-group">
                                {{Form::label('amount', 'Amount($)')}}
                                {{Form::text('amount', '', ['class' => 'form-control', 'placeholder' => 'SGD'])}}
                                <p>Max Amount: {{$c->payable}} </p>
                                {{Form::hidden('max_topup_amount', $c->payable)}}
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- Modal footer -->
        <div class="modal-footer">
            {{Form::hidden('sale_type_id', 3)}}
            {{Form::hidden('client_id', $Clients->id)}}
            {{Form::submit('Top-up', ['class'=>'btn btn-success'])}}
            <button type="button" class="btn btn-danger" data-

dismiss="modal">Cancel</button>
            </div>
        </div>
    </div>
</div>
{!! Form::close() !!}

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Удаление -> withInput () из сработавшей проверки.

От:

 $validator = Validator::make($request->all(), [
        'amount' => 'numeric|min:0|max:' . $max_topup_amount,
    ]);

    if ($validator->fails()) {
        return redirect('/sales' . '/' . $client_id)
                    ->withErrors($validator)
                    ->withInput();
    }

До:

 $validator = Validator::make($request->all(), [
        'amount' => 'numeric|min:0|max:' . $max_topup_amount,
    ]);

    if ($validator->fails()) {
        return redirect('/sales' . '/' . $client_id)
                    ->withErrors($validator);
    }
0 голосов
/ 26 сентября 2018

эти строки говорят о многом, давайте взглянем на это

в этой строке вы определяете максимальное входное значение ur, которое составляет 400

$max_topup_amount = $request->max_topup_amount;

в этой части вашего кодафактически давая $ max_topup_amount в качестве максимального значения НО , вы не изменяете его где-либо еще, поэтому независимо от того, какое значение находится в начале, оно останется таким.

  if($sale_type_id == 3){
        $validator = Validator::make($request->all(), [
            'amount' => 'numeric|min:0|max:' . $max_topup_amount,
        ]);
...