2015-12-05 2 views
2

У меня есть две модели, которые используют отношения многих и многих.Laravel 5 Вызов неопределенного метода Illuminate Database Eloquent Collection :: tags();

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() 

Может ли кто-нибудь мне помочь?

dd($mani) reply this

+0

, что является результатом 'дд ($ mani); 'after' $ mani = App \ Data :: find (2); '? – Moppo

ответ

1

Кажется, вы получаете коллекцию вместо модели

Try, чтобы получить первый элемент коллекции с:

$mani = App\Data::find(2)->first(); 
+1

Это сработало! Спасибо за ваше время. –

Смежные вопросы