文章译者
我正在使用 whereRelation 但我不知道如何从基础模型中获取 where 值条件我已经尝试过这段代码:Item::with('unit','stock')->whereRelation('stock', 'stock', '<', 'items.min_stock'); 并在调试器中查询结果:select * from `items` where exists (select * from `stocks` where `items`.`id` = `...
它与订单模型中的关系名称相同。所以当你调用$order-〉customer时,它会得到这个字段的值。在你的例子中...
如果你想过滤文章标题或评论都包含「Laravel学院」的用户,将 whereExists 换成orWhereExists 方法即可: 代码语言:javascript 复制 $users = User::whereHas('posts', function ($query) { $query->where('title', 'like', 'Laravel学院%') ->orWhereExists(function ($query) { $query->from('comments') ...
$users = User::whereHas('posts', function ($query) { $query->where('title', 'like', 'Laravel学院%') ->orWhereExists(function ($query) { $query->from('comments') ->whereRaw('`posts`.`id` = `comments`.`commentable_id`') ->where('content', 'like', 'Laravel学院%') ->where(...
})->each(function($table,$modelClass)use(&$query,$key,$callable){$model=new$modelClass;$query=$query->orWhereExists(function($query)use($table,$model,$key,$callable){$query->select('*')->from($table)->whereRaw("{$this->getTable()}.{$key}={$table}.{$model->getKeyName()}") ...
$query = $query->orWhereExists(function ($query) use ($table, $model, $key, $callable) { $query->select('*')->from($table)->whereRaw("{$this->getTable()}.{$key} = {$table}.{$model->getKeyName()}") ->when($callable instanceof \Closure, $callable); ...
$query->where('title', 'like', 'foo%'); })->get();聚合相关模型 计算相关模型的数量 有时候你可能想要计算给定关系的相关模型的数量,而不实际加载模型。为了实现这一点,你可以使用 php withCount 方法。php withCount 方法将在生成的模型中放置一个 php {relation}_count 属性:use App\Models\Post; $...
默认情况下,Laravel 将根据模型的类名来确定给定模型的关联关系; 你也可以通过将关系名称作为 whereBelongsTo 方法的第二个参数来手动指定关系名称:$posts = Post::whereBelongsTo($user, 'author')->get(); 一对多检索有时一个模型可能有许多相关模型,如果你想很轻松的检索「最新」或「最旧」的相关模型。
WHERE `articles`.`user_id` = `users`.`id` AND EXISTS (SELECT * FROM `profiles` WHERE `profiles`.`user_id` = `users`.`id`) AND `users`.`deleted_at` IS NULL) AND `verified` = '1' AND `active` = '1' ORDER BY `created_at` DESC ...