Как создать кнопку выбора с функцией разницы даты фильтра в PHP Laravel? - PullRequest
0 голосов
/ 17 января 2020

В настоящее время я хочу создать кнопку выбора с другой функцией. Кнопка состоит из двух вариантов выбора: дата поездки и дата выдачи. Поэтому, когда пользователь щелкает дату путешествия, он фильтрует функцию даты путешествия, а когда пользователь щелкает дату выпуска, он фильтрует функцию даты отпуска. Я создал кнопку выбора в view.blade. php. и функция фильтра даты. Я пытался соединить правильный выбор с нужной функцией, но, похоже, это не сработало. Как я могу передать значение выбора на самом деле? Так что, когда функция получит значение, они отфильтруют дату.

The image of the button

HTML

<select class="form-control" name="insurance_id" onchange="alert(this.options[this.selectedIndex].value);">
     <option value="Travelled" id="myInput">Travel Date</option>
     <option value="Issued" id="myButton">Issued Date</option>
</select>

Контроллер

public function filterDate(Request $request)
    {
        $insurances = Insurance::all();
        $from = $request->from;
        $to = $request->to;
        $insurance_id = $request->insurance_id;
        $exported = $request->exported;

        if($request-> myInput) {
        //function travelled date
        $travelleddate = InsuranceEnrollment::where('status', '=', 2)
            ->where("insurance_id", $insurance_id)
            ->whereBetween('depart_date', [$from, $to])
            ->orderBy('depart_date', 'DESC')
            ->paginate(10);
        } 
       else {
        //function issued date
        $issueddate = InsuranceEnrollment::where('status', '=', 2)
            ->where("insurance_id", $insurance_id)
            ->whereBetween('created_at', [$from, $to])
            ->orderBy('created_at', 'DESC')
            ->paginate(10);
        }

        $items = array(
            'items' => $travelleddate,
            'items' => $issueddate,
            'insurances' => $insurances,
            'insurance_id' => $insurance_id,
            'exported' => $exported,
            'from' => $from,
            'to' => $to,
        );

        return view('admin.insurance.sales.home')->with($items);
    }

1 Ответ

0 голосов
/ 24 апреля 2020

Я думаю, что этот фрагмент кода может быть отредактирован для достижения того, что вы так долго, пожалуйста, обратите внимание на мои комментарии, но основная идея c состоит в том, чтобы использовать значение элемента "select", которое называется "insurance_id", чтобы определить действие, которое нужно выполнить, в зависимости от значения:

    $insurance_id = $request->insurance_id; //HERE is where we determine if we are going to use travelled or Issued, since the "name" attribute of the "select" element is "insurance_id"
    $exported = $request->exported;

    if($insurance_id == "Travelled") { //now our conditional should reflect this
    //function travelled date
    $travelleddate = InsuranceEnrollment::where('status', '=', 2)
        ->where("insurance_id", $insurance_id)
        ->whereBetween('depart_date', [$from, $to])
        ->orderBy('depart_date', 'DESC')
        ->paginate(10);
    } 
   elseif($insurance_id == "Issued") { //and this one too, unless a simple else may do here.
    //function issued date
    $issueddate = InsuranceEnrollment::where('status', '=', 2)
        ->where("insurance_id", $insurance_id)
        ->whereBetween('created_at', [$from, $to])
        ->orderBy('created_at', 'DESC')
        ->paginate(10);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...