Laravel, передать несколько входных значений в контроллер из URL-адреса и формы - PullRequest
1 голос
/ 10 июля 2019

Я хочу передать много входных значений в контроллер, поэтому я хочу сравнить их со значениями в базе данных, также я хочу отправить thease значение в URL, я новичок в laravel, поэтому, пожалуйста, помогите мне

Маршрут:

Route::get('/store/caterer_search/{filter?}','HomeController@StoreSearch');

форма:

<form class="order-box__input-wrapper" name="form_mainpage" id="form_mainpage" action="/store/caterer_search/" method="get"  enctype="multipart/form-data" autocomplete="off">
    {{ csrf_field() }}

    <div class="order-box__input">
        <div class="address-bar-input">

            <input type="text" aria-label="Enter address" id="autocomplete" onFocus="geolocate()" name="autocomplete" placeholder="Enter your delivery address" data-role="address-field" onClick="this.select();">
            <input class="field" id="city" hidden=""></input>

            <input class="field" id="street_number" disabled="true" hidden=""></input>
            <input class="field" id="route" disabled="true" hidden="" ></input>
            <input class="field" id="locality" disabled="true" name="locality" ></input>
            <input class="field" id="administrative_area_level_1" disabled="true"name="administrative_area_level_1"></input>

            <input class="field" id="postal_code" disabled="true" name="postal_code" ></input>

            <input class="field" id="country" disabled="true" hidden=""></input>
        </div>
    </div>
    <i class="icon icon-location"></i>
    <button type="submit" id="homesearchbtn" class="btn btn--primary order-box__submit" aria-label="Search for caterers" disabled="">Search</button>

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

контроллер:

public function StoreSearch($autocomplete,$locality,$administrative_area_level_1,$postal_code)
{
    $stores = Storeinfo::getStoreByLocation($autocomplete);

    return view('hotels.archive',compact('hotel','country','city','star'));
}

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

У вас есть ошибки.

  • Если вы используете метод «GET», вы не можете использовать значение multipart/form-data для атрибута enctype. В этом случае у вас нет полей входного файла, поэтому вы можете удалить атрибут
  • Эти входы: <input class="field" id="country" disabled="true" hidden=""></input> бесполезны. У них нет типа, и они не будут отправлены в форму. Если они являются скрытыми полями, вы должны добавить к ним type="hidden"

Вы определили маршрут следующим образом:

Route::get('/store/caterer_search/{filter?}','HomeController@StoreSearch');

Таким образом, контроллер должен быть таким:

public function StoreSearch(Request $request, $filter = null) {
    //
    $autocomplete = $request->input("autocomplete", "");

    $stores = Storeinfo::getStoreByLocation($autocomplete);

    return view('hotels.archive',compact('hotel','country','city','star'));
}

Как видите, параметр filter маршрута довольно бесполезен, я не знаю, почему вы добавили его в маршрут.

Внутри функции контроллера вы получаете входные параметры с этим кодом:

$request->input("name_of_the_field", "default_value");
0 голосов
/ 10 июля 2019

Можете ли вы использовать Form::open()? Это может работать ..

Form::open(['route' => ['HomeController.StoreSearch', $autocomplete, $some_other_parameter]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...