Laravel attach()方法不适用于hasMan

布莱德森

该应用程序具有以下模型:

Activity.php

class Atividade extends Eloquent {
    public function intervencoes() {
        return $this->belongsToMany('Intervencao');
    }
}


Intervencao.php

class Intervencao extends Eloquent {
    public function atividades() {
        return $this->hasMany('Atividade');
    }
}


以下代码有效:

Atividade::find($id)->intervencoes()->attach($intervencao_id);

但是这个...

Intervencao::find($id)->atividades()->attach($atividade_id);

返回BadMethodCallException:

调用未定义的方法Illuminate \ Database \ Query \ Builder :: attach()


解决方案(由于@gnack):

我试图建立多对多关系,因此只需更改此...

return $this->hasMany('Atividade');

对此:

return $this->belongsToMany('Atividade');
尼克·科德(Nick Coad)

请参阅以下Laravel文档:http ://laravel.com/docs/eloquent#inserting-related-models

基本上,您为相同的两个表设置了两种不同类型的关系-您已经建立了多对多和一对多的关系。似乎您可能想要多对多,因此您需要更改此行:

return $this->hasMany('Atividade');

对此:

return $this->belongsToMany('Atividade');

这会将关系设置为多对多关系,然后将支持该attach()方法。

attach()方法仅适用于多对多,对于其他关系,则存在save()saveMany()associate()(请参见上面链接的文档)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel删除方法不适用于DELETE动词

来自分类Dev

laravel withinput不适用于数组

来自分类Dev

PHPUnit不适用于Laravel 5

来自分类Dev

pjax不适用于laravel

来自分类Dev

Gulp browserSync不适用于laravel

来自分类Dev

Laravel分页不适用于:: where(...)

来自分类Dev

Laravel Eloquent不适用于Cache

来自分类Dev

laravel分页不适用于搜索

来自分类Dev

Laravel getNameAttribute不适用于搜索

来自分类Dev

laravel验证不适用于Auth

来自分类Dev

laravel withinput不适用于数组

来自分类Dev

验证不适用于laravel 5.2.32

来自分类Dev

命令不适用于Laravel 5.4

来自分类Dev

Laravel:日期不适用于Model :: create()吗?

来自分类Dev

Laravel验证不适用于文件数组

来自分类Dev

Wordpress中的永久链接不适用于Laravel + Nginx

来自分类Dev

Laravel str_slug不适用于unicode bangla

来自分类Dev

或不适用于Laravel雄辩的关系查询

来自分类Dev

Laravel“使能运行”命令不适用于SSH密钥

来自分类Dev

Laravel分页不适用于数组而不是集合

来自分类Dev

分页不适用于POST动作laravel 5

来自分类Dev

Laravel分页不适用于日期搜索

来自分类Dev

尝试捕获laravel不适用于重复输入

来自分类Dev

Laravel Facade Slug不适用于非英语吗?

来自分类Dev

Axios修补程序请求不适用于Laravel

来自分类Dev

npm install命令不适用于Laravel 5.8版

来自分类Dev

Laravel:查询选择'as'不适用于where或have

来自分类Dev

块上传不适用于大文件-Laravel 5.8

来自分类Dev

Laravel Queue with Supervisor不适用于多个网站