繁体   English   中英

Laravel 5.1 hasMany关系查询

[英]Laravel 5.1 hasMany relation query

我正在尝试开发一个简单的Web应用程序,用于存储农民的详细信息及其耕种信息。

我有2个数据库表- farmerfarmer_crop

farmer table
id | name | phone

farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date

我做了2个控制器FarmerControllerFarmerCropController 农民可以种植多种作物使农民拥有hasMany与FarmerCrop。 现在,我想显示一个使用FarmerController的index方法的农民列表,从中可以获取正在种植小麦的农民。 我该如何实现这一目标?

$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子句。Ezequiel的回答完全正确。 但是,我将对其进行修改并添加您的新要求。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM