Laravel 有关系 - 找不到列
Laravel with relation - Column not found
我使用这个查询:
$clients = Client::with("types", "results")->where(function ($query) use ($issued, $mode, $request) {
if (($request->get("filter"))) {
$query->where('issued', $issued);
}
}
与results
的关系是:
public function results()
{
return $this->hasOne('App\ResultTest', 'client_id', 'unique_code');
}
Table ResultTest'
有 client_id
字段和 issued
。它与当前 table 合并为:
Client.uqique_code = ResultTest.clients.
现在tableResultTest
是空的。
它 returns 我一个错误:
Unknown column 'issued' in 'where clause' (SQL: select count(*) as aggregate from `clients` where (`issued` = 1))
我试过这种方法,下面的答案中推荐了这种方法:
$clients->with(["results" => function($query) use ($issued, $request, $mode) {
$query->where('issues', $issued);
if (($request->get("mode"))) {
$query->whereIn('mode', $mode);
}
}])->orderBy('created_at', 'desc')->paginate();
它给出了同样的错误:
Unknown column 'issues' in 'where clause' (SQL: select * from `result_test` where `result_test`.`client_id` in (342074, 160374, 596433) and `issues` = 0)
经过长时间的交谈,我们找到了以下解决方案:
if($request->has('filter') || $request->has('mode')) {
$builder->whereHas('results', function ($query) use ($request) {
if (($request->has("filter"))) {
$query->where('issued', $request->get('filter'));
}
if (($request->has("mode"))) {
$query->whereIn('mode', $request->get('mode'));
}
});
}
我使用这个查询:
$clients = Client::with("types", "results")->where(function ($query) use ($issued, $mode, $request) {
if (($request->get("filter"))) {
$query->where('issued', $issued);
}
}
与results
的关系是:
public function results()
{
return $this->hasOne('App\ResultTest', 'client_id', 'unique_code');
}
Table ResultTest'
有 client_id
字段和 issued
。它与当前 table 合并为:
Client.uqique_code = ResultTest.clients.
现在tableResultTest
是空的。
它 returns 我一个错误:
Unknown column 'issued' in 'where clause' (SQL: select count(*) as aggregate from `clients` where (`issued` = 1))
我试过这种方法,下面的答案中推荐了这种方法:
$clients->with(["results" => function($query) use ($issued, $request, $mode) {
$query->where('issues', $issued);
if (($request->get("mode"))) {
$query->whereIn('mode', $mode);
}
}])->orderBy('created_at', 'desc')->paginate();
它给出了同样的错误:
Unknown column 'issues' in 'where clause' (SQL: select * from `result_test` where `result_test`.`client_id` in (342074, 160374, 596433) and `issues` = 0)
经过长时间的交谈,我们找到了以下解决方案:
if($request->has('filter') || $request->has('mode')) {
$builder->whereHas('results', function ($query) use ($request) {
if (($request->has("filter"))) {
$query->where('issued', $request->get('filter'));
}
if (($request->has("mode"))) {
$query->whereIn('mode', $request->get('mode'));
}
});
}