首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否扩展attach()方法?

是否扩展attach()方法?
EN

Stack Overflow用户
提问于 2015-09-15 08:04:46
回答 1查看 180关注 0票数 2

我尝试向belongsTo关系中的attach()方法添加一个属性,但它没有任何影响:

代码语言:javascript
复制
// User Model
class User extends Eloquent {
  public function roles(){
    return $this->belongsToMany(`App\Role`);
  }
}

// Role Model
class Role extends Eloquent {
  public function users(){
    return $this->belongsToMany(`App\User`);
  }

  public function attach($id, array $attributes = [], $touch = true){
    $attributes['foo'] = 'bar';
    parent::attach($id, $attributes, $touch);
  }
}

当我执行$user->roles()->attach($id, ['key' => 'value']);时- ['key' => 'value']在那里,但它没有我在扩展连接方法中设置的['foo' => 'bar'] (我相信它没有被调用)。

EN

回答 1

Stack Overflow用户

发布于 2015-09-15 14:33:13

首先,如果您正在处理多对多关系,则必须使用attach method only

更多信息请点击此处:http://laravel.com/docs/5.1/eloquent-relationships#inserting-many-to-many-relationships

因此,您有两种不同的选择:

  • 您想要处理一对多关系。在这种情况下,必须扩展save()方法或saveMany方法。您还必须处理HasMany类;
  • 您想要处理多对多关系。在本例中,是的,您必须使用attach(),但是在BelongsToMany类中;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32575691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档