привет У меня есть 3 таблицы => сообщения, теги, post_tagвставки данных в сводной таблице в Laravel
каждый пост имеет много тегов, поэтому я использую hasMany
метод для них. но когда я выбираю для примера 3 тега в моем выпадающем списке, я не могу добавить их в post_tag, и в результате я не могу выбрать и показать теги каждого сообщения.
это мой пост модель:
class Post extends Eloquent{
public function tag()
{
return $this->hasMany('Tag');
}
}
это мой тег модель:
class Tag extends Eloquent{
public function post()
{
return $this->belongsToMany('Post');
}
}
и это мой PostController:
class postController extends BaseController{
public function addPost(){
$post=new Post;
$post_title=Input::get('post_title');
$post_content=Input::get('post_content');
$tag_id=Input::get('tag');
$post->tag()->sync($tag_id);
$post->save();
Я ожидаю, чтобы сохранить это post_id сохранить в pos таблица t_tag с идентификаторами тегов; но он не работает. спасибо за ваше время.
Если отношение имеет сводную таблицу, то обе стороны должны быть «принадлежать многим». Также вы действительно должны называть метод 'tags' не' tag', поскольку это * Многие отношения. – alexrussell
@alexrussell да, ты прав :). и другая проблема была '$ post-> tag() -> sync ($ tag_id); $ post-> save(); 'эти места для заметок должны быть заменены. спасибо – saha
Я добавил ответ, который объясняет мой комментарий немного больше и включает в себя вашу собственную коррекцию. – alexrussell