Laravel在Route中设置数组

时间:2018-10-14 16:48:50

标签: php laravel laravel-5

Hello 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 :(得分:0)

首先,您的数组检查很好。但是,如果没有通过任何false,则应该返回cusineName(因为没有要继续的点)。

然后,您可以使用restaurants方法对具有特定cuisine的{​​{1}}进行雄辩的查询:

whereHas()

在该示例中,我们通过... $restaurants = Restaurant::whereHas('cuisine', function($query) use ($cuisines) { $query->whereIn('id', $cuisines); })->get(); ... 以在雄辩的$cuisines方法中使用,然后在whereHas()方法中使用。如果找到了whereIn()的{​​{1}},则会检查该数组。