@Allanian

Как в Yii2 записать информацию в связанные таблицы?

Пробую записать информацию в связанные таблицы, подскажите в чем проблема?
Есть пример записи в связанные таблицы, мб я не так её обьявляю.
Если просто вывести форму, заполнить её данными и вывести на страницу все хорошо.

Выдает ошибку -
Integrity constraint violation – yii\db\IntegrityException
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`yiiwork`.`work_news`, CONSTRAINT `category_id` FOREIGN KEY (`id_category`) REFERENCES `work_categorynews` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
The SQL being executed was: INSERT INTO `work_news` (`id`) VALUES (DEFAULT)

Т.е. он не получает данные?

Код функции контроллера
//Добавление новостей
    public function actionCreate()
    {
        $news = new News();
        $category = Categorynews::findOne(4);
        //загрузка и валидация
      if ($news->load(Yii::$app->request->post()) && $news->validate()) {
            //Блок загрузки изображения
          $file = UploadedFile::getInstance($news, 'image');   //Get the uploaded file
          $fp = fopen($file->tempName, 'r');
          //$content = fread($fp, filesize($file->tempName));
          $content = file_get_contents($file->tempName);
          fclose($fp);
          $news->image = $content;
        $category->link('news', $news);
        $news->save();
        return $this->render('entry-confirm', ['model' => $news]);
        } else {
            // либо страница отображается первый раз, либо есть ошибка в данных
            return $this->render('create', [
                'model' => $news,
            ]);
        }
    }


Код функции модели News
    public function getIdCategory()
    {
        return $this->hasOne(Categorynews::className(), ['id' => 'id_category']);
    }
Код функции модели Categorynews
    public function getNews()
    {
        return $this->hasMany(News::className(), ['id_category' => 'id']);
    }
  • Вопрос задан
  • 755 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Метод link расcчитан на связь hasOne
Вопрос уже понимался тут:
Yii2 many-to-many сохранение через link(), как организовать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы