Laravel使用belongsto列获取数据

时间:2018-09-07 17:23:30

标签: laravel belongs-to

计划表列 ID,名称,类型

客户表列 ID,名称,plan_id

// for client

function plan(){
    return $this->belongsTo(Plan::class, 'plan_id', 'id');
}

我在客户表中输入了plan_id

如果计划类型='PP',我想从客户表中获取那些客户数据

$clientData = Client::with(['plan' => function ($clientData) {
    $clientData->where('type', 'PP');
})->get();

我尝试过,但是我从客户表中获得了所有数据。

1 个答案:

答案 0 :(得分:2)

->with()不会约束来自初始查询的数据,它只是渴望加载它。您需要为此使用->whereHas()

$clientData = Client::with(["plan"])
->whereHas("plan", function ($query) {
    $query->where("type", "=", "PP");
})->get();

这将仅返回具有Client类型为Plan的{​​{1}}条记录。