Изображение: https://ibb.co/jME48R
Пробовал вписать:
Код: Выделить всё
<?php $model->id_specialization = $num->id;?>
Код: Выделить всё
<?php $model->id_specialization = $num->id;?>
в $num->id находится число(в данном случае 7)
Ну можно и так сказать, туда записывается id из другой таблицы(id у меня приходит, тут всё ок)
я спросил не к тому ...Gyry писал(а): ↑2017.11.20, 15:18в $num->id находится число(в данном случае 7)
в данном случает параметр Doctror:getSpe.. выбирает сам пользователь(в нём находится список), Мне нужно, что бы в данный объект записывался то число, которое я укажу в коде. Соответственно пользователь не увидит это поля вообще
я имел ввиду покажите что возвращает эта ф-ция ... может у вас там нет значения с ключом 7 ...параметр Doctror:getSpe.. выбирает сам пользователь
а база то тут причем .. вы проверьте в дебаге для начала что с формы приходит ...Не сработало, то есть в базу данный ни чего не занеслось, как будто я и не указывал ни чего
Код: Выделить всё
//...
if ($model->load(Yii::$app->request->post())) {
$model->id_specialization = $num->id;
$model->save();
}
//...
Код: Выделить всё
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
//... тут ваш код
$this->id_specialization = $num->id;
return true;
}
return false;
}
да ты правильно понял, мну просто надо передать из контролера значение в поле id_specialization. Вот мой контоллер, во вьюшке значение id_specialization равно 20, но в базу он не записывает. Где я допустил ошибку?Dominus писал(а): ↑2017.11.20, 15:54 Если я правильно понял, нужно принудительно менять значение перед записью в базу, то в контроллере перед сохранением задаёте нужное значение:Или в модели метод beforeSave()Код: Выделить всё
//... if ($model->load(Yii::$app->request->post())) { $model->id_specialization = $num->id; $model->save(); } //...
Код: Выделить всё
public function beforeSave($insert) { if (parent::beforeSave($insert)) { //... тут ваш код $this->id_specialization = $num->id; return true; } return false; }
Код: Выделить всё
public function actionLink($id)
{
$model = new LinkSpecialization();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['update', 'id' => $id]);
} else {
$model->id_specialization = 20;
$model->save();
return $this->render('link', [
'model' => $model,
'num' => $this->findModel($id)
]);
}
}
Gyry писал(а): ↑2017.11.20, 16:28 да ты правильно понял, мну просто надо передать из контролера значение в поле id_specialization. Вот мой контоллер, во вьюшке значение id_specialization равно 20, но в базу он не записывает. Где я допустил ошибку?Код: Выделить всё
public function actionLink($id) { $model = new LinkSpecialization(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['update', 'id' => $id]); } else { $model->id_specialization = 20; $model->save(); return $this->render('link', [ 'model' => $model, 'num' => $this->findModel($id) ]); } }
Код: Выделить всё
public function actionLink($id)
{
$model = new LinkSpecialization();
$num = $this->findModel($id);
if ($model->load(Yii::$app->request->post())) {
$model->id_specialization = $num->id;
if($model->save())
return $this->redirect(['update', 'id' => $id]);
}
return $this->render('link', [
'model' => $model,
]);
}
О, спасибо всё заработало)Dominus писал(а): ↑2017.11.20, 16:32Gyry писал(а): ↑2017.11.20, 16:28 да ты правильно понял, мну просто надо передать из контролера значение в поле id_specialization. Вот мой контоллер, во вьюшке значение id_specialization равно 20, но в базу он не записывает. Где я допустил ошибку?Код: Выделить всё
public function actionLink($id) { $model = new LinkSpecialization(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['update', 'id' => $id]); } else { $model->id_specialization = 20; $model->save(); return $this->render('link', [ 'model' => $model, 'num' => $this->findModel($id) ]); } }
Код: Выделить всё
public function actionLink($id) { $model = new LinkSpecialization(); $num = $this->findModel($id); if ($model->load(Yii::$app->request->post())) { $model->id_specialization = $num->id; if($model->save()) return $this->redirect(['update', 'id' => $id]); } return $this->render('link', [ 'model' => $model, ]); }
Код: Выделить всё
public function actionLink($id)
{
$model = new LinkSpecialization();
if ($model->load(Yii::$app->request->post())) {
$num = $this->findModel($id);
$model->id_specialization = $num->id;
if($model->save())
return $this->redirect(['update', 'id' => $model->id_specialization]);
}
return $this->render('link', [
'model' => $model,
]);
}