Laravel 5.1 hasMany关系查询
Laravel 5.1 hasMany relation query
我正在尝试开发一个简单的网络应用程序,用于存储农民的详细信息和 his/her 种植信息。
我有 2 个数据库表 - farmer
和 farmer_crop
。
farmer table
id | name | phone
farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date
我制作了 2 个控制器 - FarmerController
和 FarmerCropController
。一个 Farmer 可以种植许多作物,因此 Farmer 有 hasMany
个 FarmerCrop。现在我想使用 FarmerController
的索引方法显示一个农民列表,其中我得到正在种植小麦的农民。我该如何实现这一目标?
你会使用类似的东西。
class = FarmerController extends Controller
public function index()
{
$results = FarmerCrop::with('farmers')
->where('farming_crop_name', 'wheat')
->get();
return view('farms.crops', compact('results'));
}
我不知道你的模型名称所以最好在上面猜测..
评论后更新
在那种情况下,如果 clause.Ezequiel 他的回答也正确,您只需添加一个。但我会修改他的并添加你的新要求。
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', 'wheat');
}])
->where('user_type_id', 3)
->get();
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', '=', 'wheat');
}])->get();
我正在尝试开发一个简单的网络应用程序,用于存储农民的详细信息和 his/her 种植信息。
我有 2 个数据库表 - farmer
和 farmer_crop
。
farmer table
id | name | phone
farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date
我制作了 2 个控制器 - FarmerController
和 FarmerCropController
。一个 Farmer 可以种植许多作物,因此 Farmer 有 hasMany
个 FarmerCrop。现在我想使用 FarmerController
的索引方法显示一个农民列表,其中我得到正在种植小麦的农民。我该如何实现这一目标?
你会使用类似的东西。
class = FarmerController extends Controller
public function index()
{
$results = FarmerCrop::with('farmers')
->where('farming_crop_name', 'wheat')
->get();
return view('farms.crops', compact('results'));
}
我不知道你的模型名称所以最好在上面猜测..
评论后更新
在那种情况下,如果 clause.Ezequiel 他的回答也正确,您只需添加一个。但我会修改他的并添加你的新要求。
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', 'wheat');
}])
->where('user_type_id', 3)
->get();
$farmers = App\Farmer::with(['crops' => function ($query) {
$query->where('farming_crop_name', '=', 'wheat');
}])->get();