计划表列 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();
我尝试过,但是我从客户表中获得了所有数据。
答案 0 :(得分:2)
->with()
不会约束来自初始查询的数据,它只是渴望加载它。您需要为此使用->whereHas()
:
$clientData = Client::with(["plan"])
->whereHas("plan", function ($query) {
$query->where("type", "=", "PP");
})->get();
这将仅返回具有Client
类型为Plan
的{{1}}条记录。