Php Laravel5.1有许多关系查询
我正在尝试开发一个简单的web应用程序,在其中存储农民的详细信息和他/她的耕种信息 我有两个数据库表-Php Laravel5.1有许多关系查询,php,mysql,laravel,laravel-5.1,has-many,Php,Mysql,Laravel,Laravel 5.1,Has Many,我正在尝试开发一个简单的web应用程序,在其中存储农民的详细信息和他/她的耕种信息 我有两个数据库表-farmer和farmer\u crop farmer table id | name | phone farmer_crop table id | farmer_id | farming_location | farming_crop_name | harvest_end_date 我制作了两个控制器-FarmerController&FarmerCropController。一个农民可以
farmer
和farmer\u crop
farmer table
id | name | phone
farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date
我制作了两个控制器-
FarmerController
&FarmerCropController
。一个农民可以种植多种作物,因此他有很多种作物。现在,我想使用FarmerController
的索引方法显示一个农民列表,从中可以得到种植小麦的农民。我如何才能做到这一点呢?您可以使用类似的方法
class = FarmerController extends Controller
public function index()
{
$results = FarmerCrop::with('farmers')
->where('farming_crop_name', 'wheat')
->get();
return view('farms.crops', compact('results'));
}
我不知道你们模特的名字,所以最好在上面猜一下
评论后更新
在这种情况下,您只需添加一个附加的WARE子句。以西结的回答是正确的。但我会修改他的,并加入你的新要求
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', 'wheat');
}])
->where('user_type_id', 3)
->get();
你会使用类似的东西
class = FarmerController extends Controller
public function index()
{
$results = FarmerCrop::with('farmers')
->where('farming_crop_name', 'wheat')
->get();
return view('farms.crops', compact('results'));
}
我不知道你们模特的名字,所以最好在上面猜一下
评论后更新
在这种情况下,您只需添加一个附加的WARE子句。以西结的回答是正确的。但我会修改他的,并加入你的新要求
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', 'wheat');
}])
->where('user_type_id', 3)
->get();
可以肯定的是,您需要雄辩的解决方案还是原始的mysql查询?可以肯定的是,您需要雄辩的解决方案还是原始的mysql查询?此查询将返回Farmercrops和farmers作为田地。这不是OP所问的。实际上我的主应用程序太大了,我只是简单地解释了一下,以便我能有一些想法。在现实生活中,没有农民的餐桌。我有一个名为User的表。有3种类型的用户。管理员、代理人和农民。其中Farmer是用户类型,id=3。模型名称为User.php、FarmerCrop.php。首先,我需要从users表中筛选我的农民,然后我必须在farmer_作物表中搜索他是否正在种植任何作物。如果他正在种植任何作物(如小麦),那么我将返回他的名字,那么代码是什么@Leese更新。但是,如果您希望它有或没有作物,您也可以添加or语句。此查询将返回Farmercrops with farmers作为一个字段。这不是OP所问的。实际上我的主应用程序太大了,我只是简单地解释了一下,以便我能有一些想法。在现实生活中,没有农民的餐桌。我有一个名为User的表。有3种类型的用户。管理员、代理人和农民。其中Farmer是用户类型,id=3。模型名称为User.php、FarmerCrop.php。首先,我需要从users表中筛选我的农民,然后我必须在farmer_作物表中搜索他是否正在种植任何作物。如果他正在种植任何作物(如小麦),那么我将返回他的名字,那么代码是什么@Leese更新。但如果你想要它有或没有作物,你也可以添加一个或声明。