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);
}
我们正在考虑将阵列设置到控制器中。有人还有其他建议吗?
答案 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}},则会检查该数组。