Шелест
Новичок
Добрый день,уважаемое сообщество.
Возник небольшой вопрос,надеюсь на Вашу помощь.
Идея:
Возможность редактирования и пересохранения записи из БД.
Что сделано:
Контроллер BookController
Вьюха bookUpdate:
Проблема:
После редактирования записи,данные не сохраняются.В базе остается старая информация.При этом пост-запрос уходит и данные проходят валидацию.
Если укажу явно,например,
,тогда отрабатывает без проблем.
Подскажите,пожалуйста,где я налажал??
Благодарю за уделенное время.
Возник небольшой вопрос,надеюсь на Вашу помощь.
Идея:
Возможность редактирования и пересохранения записи из БД.
Что сделано:
Контроллер BookController
PHP:
public function actionUpdate($id)
{
$model = Book::findOne($id);
if ($model->load(Yii::$app->request->post())&&$model->validate()) {
$model->save();
var_dump($model);//В модели по прежнему старые записи.Почему??
//return $this->redirect(Yii::$app->urlManager->createUrl(['book/index']));
} else {
return $this->render('bookUpdate', [
'model' => $model,
]);
}
}
PHP:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use app\models\AuthorsList;
use yii\helpers\ArrayHelper;
$this->title = 'Редактировать запись';
?>
<div class="site-login">
<h1><?= Html::encode($this->title) ?></h1>
<p>Пожалуйста,внесите необходмые правки</p>
<?php
$form = ActiveForm::begin([
'id' => 'login-form',
'options' => ['class' => 'form-horizontal',
'enctype'=>'multipart/form-data'],
'fieldConfig' => [
'template' => "{label}\n<div class=\"col-lg-9\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
'labelOptions' => ['class' => 'col-lg-2 control-label'],
],
]);
?>
<?= $form->field($model, 'name')->label("Заголовок") ?>
<?= $form->field($model, 'preview')->fileInput()->label("Обложка") ?>
<?= $form->field($model, 'date')->label("Год издания")->input("date") ?>
<?= $form->field($model, 'author_id')->dropDownList(
ArrayHelper::map(AuthorsList::find()->all(),"id","name"),
['prompt'=>'Выберите автора'])
->label("Автор")
?>
<div class="form-group">
<div class="col-lg-offset-1 col-lg-10">
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
</div>
<?php
ActiveForm::end();
?>
</div>
После редактирования записи,данные не сохраняются.В базе остается старая информация.При этом пост-запрос уходит и данные проходят валидацию.
Если укажу явно,например,
PHP:
$model->name = "John"
PHP:
var_dump($model->errors);//array(0) { }
Благодарю за уделенное время.