laravel - 如何在 Laravel 中查询多个数据集
问题描述
我正在努力获取与当前类别(多个数据集)和城市匹配的地点列表:
我所做的是以下,
$cat = Category::find($request->category_id)->toArray();
$cat_id = $cat['id'];
和
$places = DB::table('places')
->where('category',$cat_id)
->where('city_id', $request->city_id)
->get();
查看数据集的屏幕截图:
解决方案
对于您当前的问题,您可以使用LIKE运算符。
$places = DB::table('places')
->where('category','LIKE', '%"'.$cat_id.'"%')
->where('city_id', $request->city_id)
->get();
但上面的代码不会永久解决您的问题。在这种情况下,您似乎正在尝试创建多对多关系,这是为此使用数据透视表的最佳实践。如果您可以更新模式作为示例并遵循 Laravel 标准来实现这一点,那就更好了。例子:
table: category_place , having columns ["category_id", "place_id"]
同样,您需要更新以下架构
地点类型
表:place_place_type,列 [“place_id”,“place_type_id”]
设施
表:amenity_place,列 [“amenity_id”,“place_id”]
参考。链接:https ://laravel.com/docs/8.x/eloquent-relationships#many-to-many-polymorphic-relations
推荐阅读
- mysql - 如何使用 MySQL 拆分每个有空格的数据或字符串?
- java - 如何从 Map 中获取对象值?
- react-native - 如何从 react-native-element 获取输入值
- go - Terraform Custom Provider:如果远程 URL 不可用,如何避免 TF 状态文件更新?
- python - Python 类型提示以匹配不同的类,具有共同的行为
- python - 无法在 tkinter 列表框中显示完整项目
- c# - 如何克服 ASP.net 中的 CS1579 错误?
- php - 带有一个通知类的 Laravel 通知
- graph - Ocaml:使用 bfs 的最长路径
- reactjs - 如何在反应中隐藏布尔玛下拉菜单