laravel eloquent ->whereHas - 编写你自己的存在(子查询)
laravel eloquent ->whereHas - write your own exists( subquery )
Laravel Eloquent ->whereHas()
使用 exists()
子查询 - https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html - 为了 return 你的结果。
我想写我自己的子查询,但我不知道如何告诉 Eloquent 到 -> 哪里。
如果我这样做:
$query->where( DB::raw(' exists( subquery ) ')
Laravel 而是将子查询写为:
where exists( subquery ) is null
所以我只是想知道什么 $query->method()
可以用来将 exists() 子查询添加到 'where' 语句。子查询与 laravel 生成的类型相同,但写成:
... and exists ( select * from `tbl` inner join `assets` on `custom_assets`.`id` = `tbl`.`asset_id` where `assets`.`deleted_at` is null and `users`.`id` = `assets`.`client_id` and `field_id` = ? and (`value` = ? and `assets`.`deleted_at` is null )
Read WhereHas Description Here
您可以在那里找到此代码示例。您还可以在 whereHas.
中为您的自定义查询添加闭包
// Retrieve all posts with at least one comment containing words like foo%
$posts = App\Post::whereHas('comments', function ($query) {
$query->where('content', 'like', 'foo%');
})->get();
使用whereRaw()
:
$query->whereRaw('exists( subquery )')
Laravel Eloquent ->whereHas()
使用 exists()
子查询 - https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html - 为了 return 你的结果。
我想写我自己的子查询,但我不知道如何告诉 Eloquent 到 -> 哪里。
如果我这样做:
$query->where( DB::raw(' exists( subquery ) ')
Laravel 而是将子查询写为:
where exists( subquery ) is null
所以我只是想知道什么 $query->method()
可以用来将 exists() 子查询添加到 'where' 语句。子查询与 laravel 生成的类型相同,但写成:
... and exists ( select * from `tbl` inner join `assets` on `custom_assets`.`id` = `tbl`.`asset_id` where `assets`.`deleted_at` is null and `users`.`id` = `assets`.`client_id` and `field_id` = ? and (`value` = ? and `assets`.`deleted_at` is null )
Read WhereHas Description Here
您可以在那里找到此代码示例。您还可以在 whereHas.
中为您的自定义查询添加闭包// Retrieve all posts with at least one comment containing words like foo%
$posts = App\Post::whereHas('comments', function ($query) {
$query->where('content', 'like', 'foo%');
})->get();
使用whereRaw()
:
$query->whereRaw('exists( subquery )')