Как проверить существующую запись в базе данных и установить Fla sh в yii2 - PullRequest
1 голос
/ 22 апреля 2020

Я хочу проверить, была ли книга заимствована. Поэтому я не хочу, чтобы одна и та же книга была опубликована дважды. на данный момент он показывает ошибку дублирования, как я могу зафиксировать эту ошибку после проверки ее существования.

 public function actionCreate()
{
    $model = new Books();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'book_id' => $model->book_id]);
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

1 Ответ

0 голосов
/ 23 апреля 2020

Чтобы получить ошибки проверки модели, вы можете позвонить $model->validate(). Затем вы можете получить ошибки с $model->getErrors(). Однако, как указано в комментариях, save() также вызывает validate(), поэтому предоставленный вами пример должен выглядеть следующим образом:

if ($model->load(Yii::$app->request->post()) && $model->save()) {
    return $this->redirect(['view', 'book_id' => $model->book_id]);
} else {
    $errors = $model->getErrors();
    //Process your errors here
}

Подробную информацию можно найти в официальных документах для Класс yii \ base \ Model # validate

...