Laravel установил Массив в Трассу - PullRequest
0 голосов
/ 14 октября 2018

Здравствуйте, сообщество StackOverflow, после некоторых исследований мы решили попросить вас найти решение.

Мы хотели бы получить ссылку с определенным массивом.Цель состоит в том, чтобы иметь ссылку, такую ​​как:

www.testurl.com/restaurants/CUISINENAME/

Тогда мы просто хотели бы видеть все restaurants с конкретным cuisine.В настоящее время фильтр работает на веб-сайте с флажком.

Маршрутизатор

 Route::group(['prefix' => 'restaurants', 'namespace' => 'frontEnd', 'middleware'=>'checkzipcode'], function () {
    Route::get('/', 'RestaurantController@showAllRestaurants');
    Route::post('/', 'RestaurantController@showAllRestaurants');
});

Контроллер

if (request('cusineName')) {
    if (is_array(request('cusineName'))) {
        $cusineName = request('cusineName');
    } else {
        $cusineName = (explode(",", request('cusineName')));
    }
    $all_restaurant = $all_restaurant->whereIn('restaurant_cuisines.type_cuisine_id', $cusineName);
}

Мы думали о настройке массива в контроллере.У кого-нибудь есть еще предложения?

1 Ответ

0 голосов
/ 14 октября 2018

Во-первых, ваша проверка массива в порядке.Тем не менее, вы должны вернуть false, если не было пропущено cusineName (поскольку нет смысла продолжать).

После этого вы сможете выполнить красноречивый запрос для restaurants, который имеет определенный cuisine с помощью метода whereHas():

...

$restaurants = Restaurant::whereHas('cuisine', function($query) use ($cuisines) {
    $query->whereIn('id', $cuisines);
})->get();

...

В этом примере мы пропускаем $cuisines, который будет использоваться в методе whereHas() eloquent, чтобы затем использовать его в методе whereIn().Это будет проверять массив, если cuisine s id найден.

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