【问题标题】:Laravel. Model Factory. Many-To-Many relation拉拉维尔。模型厂。多对多关系
【发布时间】:2017-08-24 09:58:52
【问题描述】:

我对模型工厂的多对多关系有疑问。

例如:
usersrolesuser_role 表。 我为userroles 定义了模型工厂。接下来我尝试向用户添加角色:

$role = factory(Role::class)->create();
config(['admin_group_id' => $role->id]);
$admin = factory(User::class)->create();
$admin->roles()->save($role);

这是工作,但是当我得到$admin->roles()->first()->id 它不等于$role->id

【问题讨论】:

  • 你确定 config(['admin_group_id' => $role->id]);是正确的?您将此 admin_group_id 存储在什么文件中?它通常类似于 config('myfile.myfield', $value) 不是吗?
  • 这只是一个例子。我不明白为什么 $admin->roles()->first()->id 在将角色保存给用户后不等于 $role->id
  • 是什么关系?属于ToMany?
  • 是的,belongsToMany
  • 看我的回答 - 应该让你解决问题

标签: php laravel unit-testing model factory


【解决方案1】:

你应该使用attach(),而不是使用save(),并传入角色的ID

【讨论】:

    猜你喜欢
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2022-10-14
    • 2014-11-28
    相关资源
    最近更新 更多