【问题标题】:How Assign To User In Many To Many Relationship at laravel?laravel 如何在多对多关系中分配给用户?
【发布时间】:2019-11-30 02:30:09
【问题描述】:

我有 3 个表
用户表:

| id | name | email          | password |
|----|------|----------------|----------|
| 1  | jack | jack@gmail.com | 123456   |

站点表:

| id | name   | url        |
|----|--------|------------|
| 1  | google | google.com |

我想在 Laravel 上完成这项工作:
当用户添加站点时,自动将该站点添加到 site_user 表上的该用户
例如,当我使用 url google.com 添加站点 google 时,在 site_user 表上添加一行包含以下内容:
site_user 表:

| id | user_id | site_id |
|----|---------|---------|
| 1  | 1       | 1       |

也就是说 site_id 1 属于 user_id 1 。我该怎么做?

我有两个模型站点和用户:
现场模型:

public function users(){
        return $this->belongsToMany(User::class,'site_user','site_id','user_id'); 
    }

关于用户模型:

public function sites(){
        return $this->belongsToMany(Site::class,'site_user','user_id','site_id');  
    }

而在控制器中,我不知道我该如何完成这项工作!请帮帮我@

【问题讨论】:

  • 到目前为止,您在控制器中的代码是什么?
  • 我想要这个@这是我在控制器中的代码:public function store(Request $request) { Site::create($request-all());}
  • 以上代码仅在第二个表 Sites Table 上创建数据。我想在 site_user 表上的这段代码之后自动创建数据

标签: laravel laravel-5 foreign-keys many-to-many relationship


【解决方案1】:

https://laravel.com/docs/5.8/eloquent-relationships#many-to-many 在您的控制器中:

$user = Auth::user();
$sites = $user->sites()->get(); // This will get the sites belongs to user
$site = Site::first();
$users = $site->users()->get(); // This will get the users belongs to site
$user = Auth::user();
$site = Site::create($request->all());
$user->sites()->attach($site->id);  // This will build the relationship with site and user
$user = Auth::user();
$site_ids = [1,2,3];
$user->sites()->sync($site_ids);  // This will create the not exist relationship in $site_ids, and delete the exist relationship not in $site_ids;

【讨论】:

  • 谢谢,但我不知道如何使用您的代码!你能解释一下我如何在 sitesController.php 中完成这项工作吗?
  • 我认为你需要先创建你的站点,然后获取你创建的site_id,然后像第三部分一样通过attach找到用户建立关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 2022-01-23
  • 2017-04-16
  • 2017-05-17
  • 2021-07-02
  • 2015-04-23
相关资源
最近更新 更多