Laravel 5.1具有多个关系查询


Laravel 5.1 hasMany relation query

我正在尝试开发一个简单的网络应用程序,在其中存储农民的详细信息和他/她的种植信息。

我有两个数据库表——farmerfarmer_crop

farmer table
id | name | phone
farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date

我做了两个控制器——FarmerController&FarmerCropController。一个农民可以种植许多作物,因此该农民拥有FarmerCrop的hasMany。现在,我想显示一个使用FarmerController的索引方法的农民列表,其中我得到了正在种植小麦的农民。我该如何实现这一目标?

$farmers = App'Farmer::with(['crops' => function ($query) {
    $query->where('farming_crop_name', '=', 'wheat');
}])->get();

您可以使用类似的东西。

class = FarmerController extends Controller
public function index()
{
    $results = FarmerCrop::with('farmers')
               ->where('farming_crop_name', 'wheat')
               ->get();
    return view('farms.crops', compact('results'));
}

我不知道你们模特的名字,所以最好在上面猜测。。

评论后更新

在这种情况下,您只需要添加一个额外的are子句。埃齐基尔的回答完全正确。但我会修改他的,增加你的新要求。

$farmers = App'Farmer::with(['crops' => function ($query) {
    $query->where('farming_crop_name', 'wheat');
}])
->where('user_type_id', 3)
->get();