Я пытаюсь реализовать множество отношений, используя сводную таблицу. Имя моей сводной таблицы - «post_tag», а имена столбцов - «post_id» и «tag_id». Классы модели post и tag выглядят ниже.Laravel 5.2.29 От многих до многих отношений не работает
class Post extends Model
{
protected $fillable = array(
'title',
'text',
'active',
'user_id'
);
public function user()
{
return $this->belongsTo('App\Post');
}
public function comments()
{
return $this->hasMany('App\Comment');
}
public function tags()
{
return $this->hasMany('App\Post', 'post_id');
}
}
А класс тега, как показано ниже:
class Tag extends Model
{
public function posts()
{
return $this->hasMany('App\Post');
}
}
В таблице post_tag выглядит, как показано ниже:
post_id tag_id 1 1 1 2 2 1
Я пытаюсь теги для поста, используя следующий код:
$user = User::find(1);
foreach ($user->posts as $post) {
foreach ($post->tags as $tag) {
print $tag->title;
print "<br>";
}
print "<br>";
}
Но это бросает Ошибка:
QueryException в connection.php линии 729: SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец 'posts.post_id' в 'где предложение' (SQL: выберите * от posts
где posts
. post_id
= 1 и posts
. post_id
не является отрицательным)
Я думаю, что я чего-то не хватает. Может кто-нибудь, пожалуйста, дайте мне знать.
Благодаря
ваш метод тегов на сообщение модели должны подключаться к App/Tag вместо App/Post – follio