Я пытаюсь отобразить тег, выбранный пользователем. Имя тега находится в таблице тегов. Таблица tagpost имеет соответствие между тегом и пользователем.
Ниже приведена модель User, где первичным ключом в таблице users является id, а var_id может быть разных типов, а 2 - для пользователей (не уверенесли ниже, где условие является правильным):
public function tagpost()
{
return $this->hasMany('App\tagpost', 'var_id')->where('type',2);
}
Ниже приведена модель тега:
public function tags()
{
return $this->belongsToMany('App\tag','id');
}
public function users()
{
return $this->belongsToMany('App\User');
}
Ниже приводится модель тега:
public function tagposts()
{
return $this->hasMany('App\tagpost', 'var_id');
}
Следующий запрос не работает в блейде:
<option>{{ Auth::user()->tagpost()->tags()->select('t_name')->first()->t_name}} </option>
Ошибка в блейде:
Call to undefined method Illuminate\Database\Query\Builder::tags()