Здравствуйте.
Есть таблица с записями (post) к ней связывается таблица post_support для отношения к таблице support.
Идею реализации спрашивал
тут.
Сделал миграцию для post_support:
Код миграцииSchema::create('post_support', function (Blueprint $table) {
$table->increments('id');
$table->integer('post_id')->unsigned();
$table->integer('support_id');
$table->foreign('post_id')->references('id')->on('post');
});
Далее в модели Post прописал связь.
Кодpublic function supports() {
return $this->hasMany('App\PostSupport');
}
Все как-бы хорошо пока идет, вывод данных происходит как нужно, но вот при сохранении выдает ошибку
"MassAssignmentException in Model.php line 444: support_id"
Код сохранения$post = App\Post::find($page_id);
foreach ($request->input('support_id') as $id) {
$post->supports()->save(
new App\PostSupport(['support_id' => $id])
);
}
Можно конечно вставить напрямую через DB::table('post_support')->insert([]) но интересно в чем проблема.
Вопрос 2.
При обновлении записи я могу изменить только поля с supports и когда сохраняю, выводится ошибка что запись не обновилась. Код:
if( DB::table('post')->where('id', '=', $page_id)->update($data) ) {
echo "ok";
}
Тут и так понятно почему не выводится сообщение, я вставляю записи в post_support выше, но предварительно все удаляю - DB::table('post_support')->where('post_id', '=', $page_id)->delete();
Как можно сделать по правильному?
Спасибо за помощь!