Laravel 5.1有很多关系查询

时间:2015-12-03 14:48:25

标签: php mysql laravel laravel-5.1 has-many

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

我有2个数据库表 - farmerfarmer_crop

farmer table
id | name | phone

farmer_crop table
id | farmer_id | farming_location | farming_crop_name | harvest_end_date

我制作了2个控制器 - FarmerController& FarmerCropController。一个农民可以种植许多农作物,因此农民有hasMany农民作物。现在,我想展示一个农民名单,使用FarmerController的指数法,让农民种植小麦。我该如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

你会使用类似的东西。

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();