我有两个使用多对多关系的模型。
class Tag extends Model
{
protected $table= 'tags';
protected $primaryKey = 'id';
protected $fillable = [
'name'
];
public function members()
{
return $this->belongsToMany('App\Data','data_tag','tag_id','data_id')
->withTimestamps();
}
}
和数据模型..
class Data extends Model
{
protected $table= 'dbaccess';
protected $primaryKey = 'id';
protected $fillable = [
'username','password','email','added_at','user_id'
];
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tags()
{
return $this->belongsToMany('App\Tag','data_tag','data_id','tag_id')
->withTimestamps();
}
}
data_tag
链接表格。
当我调用函数
时 $mani = App\Data::find(2);
然后
$mani->tags()->attach(3);
我收到以下错误。
[Symfony\Component\Debug\Exception\FatalErrorException]
Call to undefined method Illuminate\Database\Eloquent\Collection::tags()
任何人都可以帮我吗?
答案 0 :(得分:1)
看来你正在收集一个集合而不是一个模型
尝试使用以下内容获取集合的第一个元素:
$mani = App\Data::find(2)->first();