@phpForeve

Yii2 Как получить ID записи с которой я работаю?

Есть моделька, которая создает запись в бд. Далее я должен написать. "УРА! Запись $id была успешно добавлена"
Вот мой контроллер
public function actionCreate(){
        $model = new NewsForm();
        $model->create_at = (new DateTime())->format('Y-m-d H:i:s');
        $model->update_at = (new DateTime())->format('Y-m-d H:i:s');
        if ($news = $model->create()) {
           echo 'УРА! Запись' .  $model->id . 'была успешно добавлена';
        }
    }


Вот функция Create из формы
public function create()
    {
        if (!$this->validate()) {
            return null;
        }
        $news = new News();
        $news->create_at = $this->create_at;
        $news->status = 'archive';
        var_dump($news);die;
        return $news->save() ? $news : null;
    }


Но $model->id мне возвращает NULL, в форме var_dump($news) - так же нет id.

Что делать?
  • Вопрос задан
  • 776 просмотров
Решения вопроса 1
padlyuck
@padlyuck
public function create()
    {
        if (!$this->validate()) {
            return null;
        }
        $news = new News();
        $news->create_at = $this->create_at;
        $news->status = 'archive';
        var_dump($news);die;
        return $news->save() ? $news : null;
    }

>>> в форме var_dump($news) - так же нет id.
конечно нету, т.к. оно еще не сохранено. уберите вардамп из формы и поменяйте экшен на
public function actionCreate(){
        $model = new NewsForm();
        $model->create_at = (new DateTime())->format('Y-m-d H:i:s');
        $model->update_at = (new DateTime())->format('Y-m-d H:i:s');
        if ($news = $model->create()) {
           echo 'УРА! Запись' .  $news->id . 'была успешно добавлена';
        }
    }

если не выведет id - будем дальше ковырять
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы