首页 > 解决方案 > 如何在关系中使用多个“喜欢的地方” - Laravel

问题描述

我的数据库中有 4 个表。用户、用户详细信息、标签和可标记。通过使用用户表,我得到了用户以及用户详细信息和标签。以下是表架构

Table user:
id, name, email, password

Table user_details
user_id, about, vision, picture

Table tags:
id, name

Table taggables
user_id, tag_id

here is my query:
User::with('userDetails','tags')->get();

我想在用户名或标签名中使用 where like,如何在用户名和标签名中使用多个 where like ????

标签: mysqllaraveleloquenteloquent-relationship

解决方案


你想要这样的东西吗?

$users= User::with('userDetails','tags')
            ->where('name', 'LIKE',"%{$search}%")
            ->orWhereHas('tags', function($query) use($search) {
                $query->where('name','LIKE',"%{$search}%");
            })
            ->get();

$search在这里是一个变量。


推荐阅读