Проверьте выпадающее выбранное значение перед запуском функции сохранения в контроллере Laravel5.7 - PullRequest
0 голосов
/ 26 января 2020

У меня есть разные дела в магазине, у меня есть три входа (имя клиента - название компании - имя агента) и выпадающий список (payment_type), если

Случай: тип платежа (приблизительно sh), необходимое значение: имя клиента и (название компании - имя агента) должно быть пустым

Случай: тип платежа - это (кредит), необходимо указать название компании и (имя клиента - имя агента) должно быть пустым

Случай : тип платежа - это (ожидающее) значение, необходимое - это имя агента, а (имя клиента - название компании) должно быть пустым

моя проблема в том, что оператор if внутри контроллера не работает

вот мой контроллер код:

 if ( Input::has('payment_type') == 'cash') {

        $this->validate($request,[
            'tkt_no'=>'required',
            'sector'=>'required',
            'airline'=>'required',
            'supplier'=>'required',
            'fare'=>'required',
            'tax'=>'required',
            'total_vat'=>'required',
            'total_cost'=>'required',
            'k7'=>'required',
            'comm'=>'required',
            'profit'=>'required',
            'sale_price'=>'required',
            'pax_name'=>'required',
            'client'=>'required',
            'mob'=>'required',
            'amount_arabic'=>'required',
            'amount_english'=>'required',
            'action_type'=>'required',
            'trans_type'=>'required',
            'payment_type'=>'required',
        ]);

        $ticket = new Ticket();
        $ticket->date = Carbon::now();
        $ticket->pnr = $request->get('pnr');
        $ticket->tkt_no = $request->get('tkt_no');
        $ticket->sector = $request->get('sector');
        $ticket->airline = $request->get('airline');
        $ticket->supplier = $request->get('supplier');
        $ticket->fare = $request->get('fare');
        $ticket->tax = $request->get('tax');
        $ticket->total_vat = $request->get('total_vat');
        $ticket->total_cost = $request->get('total_cost');
        $ticket->k7 = $request->get('k7');
        $ticket->comm = $request->get('comm');
        $ticket->profit = $request->get('profit');
        $ticket->sale_price = $request->get('sale_price');
        $ticket->sign = Auth::user()->shortsign;
        $ticket->branch =Auth::user()->branch_id;
        $ticket->pax_name = $request->get('pax_name');
        $ticket->client = $request->get('client');
        $ticket->agent = null;
        $ticket->company = null;
        $ticket->mob = $request->get('mob');
        $ticket->amount_arabic = $request->get('amount_arabic');
        $ticket->amount_english = $request->get('amount_english');
        $ticket->action_type = $request->get('action_type');
        $ticket->trans_type = $request->get('trans_type');
        $ticket->payment_type = $request->get('payment_type');
        $ticket->post_flag = '0';
        $ticket->save();

        session()->flash('success',__('site.added_successfully'));
        return redirect()->route('tickets.index');

    } else if( Input::has('payment_type') == 'credit'){

        $this->validate($request,[
            'tkt_no'=>'required',
            'sector'=>'required',
            'airline'=>'required',
            'supplier'=>'required',
            'fare'=>'required',
            'tax'=>'required',
            'total_vat'=>'required',
            'total_cost'=>'required',
            'k7'=>'required',
            'comm'=>'required',
            'profit'=>'required',
            'sale_price'=>'required',
            'pax_name'=>'required',
            'company'=>'required',
            'mob'=>'required',
            'amount_arabic'=>'required',
            'amount_english'=>'required',
            'action_type'=>'required',
            'trans_type'=>'required',
            'payment_type'=>'required',
        ]);

        $ticket = new Ticket();
        $ticket->date = Carbon::now();
        $ticket->pnr = $request->get('pnr');
        $ticket->tkt_no = $request->get('tkt_no');
        $ticket->sector = $request->get('sector');
        $ticket->airline = $request->get('airline');
        $ticket->supplier = $request->get('supplier');
        $ticket->fare = $request->get('fare');
        $ticket->tax = $request->get('tax');
        $ticket->total_vat = $request->get('total_vat');
        $ticket->total_cost = $request->get('total_cost');
        $ticket->k7 = $request->get('k7');
        $ticket->comm = $request->get('comm');
        $ticket->profit = $request->get('profit');
        $ticket->sale_price = $request->get('sale_price');
        $ticket->sign = Auth::user()->shortsign;
        $ticket->branch =Auth::user()->branch_id;
        $ticket->pax_name = $request->get('pax_name');
        $ticket->client = null;
        $ticket->agent = null;
        $ticket->company = $request->get('company');
        $ticket->mob = $request->get('mob');
        $ticket->amount_arabic = $request->get('amount_arabic');
        $ticket->amount_english = $request->get('amount_english');
        $ticket->action_type = $request->get('action_type');
        $ticket->trans_type = $request->get('trans_type');
        $ticket->payment_type = $request->get('payment_type');
        $ticket->post_flag = '0';
        $ticket->save();

        session()->flash('success',__('site.added_successfully'));
        return redirect()->route('tickets.index');

    }else if( Input::has('payment_type') == 'pending'){

        $this->validate($request,[
            'tkt_no'=>'required',
            'sector'=>'required',
            'airline'=>'required',
            'supplier'=>'required',
            'fare'=>'required',
            'tax'=>'required',
            'total_vat'=>'required',
            'total_cost'=>'required',
            'k7'=>'required',
            'comm'=>'required',
            'profit'=>'required',
            'sale_price'=>'required',
            'pax_name'=>'required',
            'agent'=>'required',
            'mob'=>'required',
            'amount_arabic'=>'required',
            'amount_english'=>'required',
            'action_type'=>'required',
            'trans_type'=>'required',
            'payment_type'=>'required',
        ]);

        $ticket = new Ticket();
        $ticket->date = Carbon::now();
        $ticket->pnr = $request->get('pnr');
        $ticket->tkt_no = $request->get('tkt_no');
        $ticket->sector = $request->get('sector');
        $ticket->airline = $request->get('airline');
        $ticket->supplier = $request->get('supplier');
        $ticket->fare = $request->get('fare');
        $ticket->tax = $request->get('tax');
        $ticket->total_vat = $request->get('total_vat');
        $ticket->total_cost = $request->get('total_cost');
        $ticket->k7 = $request->get('k7');
        $ticket->comm = $request->get('comm');
        $ticket->profit = $request->get('profit');
        $ticket->sale_price = $request->get('sale_price');
        $ticket->sign = Auth::user()->shortsign;
        $ticket->branch =Auth::user()->branch_id;
        $ticket->pax_name = $request->get('pax_name');
        $ticket->client = null;
        $ticket->agent = $request->get('agent');
        $ticket->company = null;
        $ticket->mob = $request->get('mob');
        $ticket->amount_arabic = $request->get('amount_arabic');
        $ticket->amount_english = $request->get('amount_english');
        $ticket->action_type = $request->get('action_type');
        $ticket->trans_type = $request->get('trans_type');
        $ticket->payment_type = $request->get('payment_type');
        $ticket->post_flag = '0';
        $ticket->save();

        session()->flash('success',__('site.added_successfully'));
        return redirect()->route('tickets.index');

    }

и вот мой код блейд-файла:

 <div class="form-group col-md-2">
                                    <label>@lang('site.payment_type')</label>
                                    <select class="form-control select2 status-type" style="width: 100%;"
                                            name="payment_type"
                                            onchange="showresult(this.value)"
                                            id="payment_type">
                                        <option selected value="cash">@lang('site.cash')</option>
                                        <option value="credit">@lang('site.credit')</option>
                                        {{--                                            <option value="advance">@lang('site.advance')</option>--}}
                                        <option value="pending">@lang('site.pending')</option>
                                    </select>
                                </div>
                                <div id="pax_name_div" class="col-md-3">
                                    <div class="form-group">
                                        <label for="pax_name">@lang('site.pax_name')</label>
                                        <div class="position-relative has-icon-left">
                                            <input type="text" id="pax_name" class="form-control"
                                                   name="pax_name"
                                                   value="{{ old('pax_name') }}" >
                                            <div class="form-control-position">
                                                <i  class="la la-keyboard-o"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>

                                <div id="company_div" style="display: none" class="form-group col-md-3">
                                    <label >@lang('site.company_name')</label>
                                    <select class="form-control select2 status-type" style="width: 100%;"
                                            name="company"
                                            id="company">
                                        @foreach ($companies as $company)
                                            <option value="{{ $company->id }}">{{ $company->name }}</option>
                                        @endforeach
                                    </select>
                                </div>

                                <div id="agent_div" style="display: none" class="form-group col-md-3">
                                    <label >@lang('site.agent_name')</label>
                                    <select class="form-control select2 status-type" style="width: 100%;"
                                            name="agent"
                                            id="agent">
                                        @foreach ($agents as $agent)
                                            <option value="{{ $agent->id }}">{{ $agent->name }}</option>
                                        @endforeach
                                    </select>
                                </div>


                                <div id="client_div" style="display: block" class="col-md-3">
                                    <div class="form-group">
                                        <label for="client">@lang('site.client_name')</label>
                                        <div class="position-relative has-icon-left">
                                            <input type="text" id="client" class="form-control"
                                                   name="client"
                                                   value="{{ old('client') }}">
                                            <div class="form-control-position">
                                                <i class="la la-keyboard-o"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>

не могли бы вы мне помочь, пожалуйста?

1 Ответ

2 голосов
/ 26 января 2020

Это потому, что вы используете:

if ( Input :: has ('payment_type') * == 'ca sh')

has ('field') возвращает логическое значение, поэтому попробуйте вместо этого получить вот так:

Input::get('payment_type') == 'cash'

Или вы можете использовать напрямую:

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