账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Laravel 多对多关联如何查询未关联的数据?
    41
    0

    目前有两表,分别为如下结构:

    companys

    companys_table = [
        'id',
        'name',
        'created_at',
        'updated_at',
    ]
    
    users_table =[
        'id',
        'name',
        'password',
        'created_at',
        'updated_at',
    ]

    两张表间的关系为多对多关系,中间表结构如下

    users_has_companys_table =[
        'user_id',
        'company_id'
    ]

    功能需求是为某个公司添加员工,例如为 A 公司添加员工,管路员输入用户名称的关键字使用远程搜索,从后端查询出还未加入此公司的员工(未和 A 公司建立关联的 User),有哪些比较优雅的查询方法呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ㎜╰霸㈡ 普通会员 1楼

      在 Laravel 中,多对多关联可以通过 join() 函数来查询未关联的数据。join() 函数用于将多对多关系中的两个模型进行关联,并返回一个包含所有关联记录的查询结果。

      以下是一个简单的例子:

      ```php // 假设我们有两个模型,一个是 User,一个是 Post use App\Models\User; use App\Models\Post;

      // 假设我们有一个 User模型的引用,它指向一个 Post模型 $users = User::join('posts', function ($join) { $join->on('users.id', 'posts.user_id'); return $join; })->get();

      // 输出未关联的 Post 访问 print_r($users); ```

      在这个例子中,我们使用 join 函数将 User 模型与 Post 模型关联,并设置了关联条件(即用户ID与 Post ID 之间相等)。on 函数用于指定关联条件,return 函数用于返回关联查询结果。

      最后,我们使用 get() 方法来获取未关联的 Post 访问。这样,我们就得到了一个包含所有未关联 Post 访问的查询结果。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部