@Ghost2692

Как сохранить связанные таблицы в модели yii2?

У меня есть таблица group_list, которая связана с contact_list.
В моделе RenameGroup
class RenameGroup extends Model
{

    public $name_group;

    public function rules()
    {
        return [
            [['name_group'], 'string', 'max' => 255],
        ];
    }

    //Save rename group for contact list
    public function saveNameGroup($id){
        $name = GroupContactList::find()->where(['contact_list_id' => $id])->with('user')->one();
        $name->name_group = Html::encode($this->name_group);
        return $name->save();
    }

}

В groupContactList
public function getContactList()
    {
        return $this->hasMany(ContactList::className(), ['contact_id' => 'contact_list_id']);
    }

і controller
$renameGroup = new RenameGroup();
        if ($renameGroup->load(Yii::$app->request->post('RenameGroup')) && $renameGroup->validate() && $renameGroup->saveNameGroup($id)) {
            return $this->refresh();
        }

Проблема в так как не сохраняет в базу, и как это можно решить?
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Для начала немного переписать в действии сохранение модели.
$renameGroup = new RenameGroup();
if ($renameGroup->load(Yii::$app->request->post()) && $renameGroup->save()) {
    if($renameGroup->saveNameGroup($renameGroup->id)){
         return $this->refresh();
    }       
}

И я добавил бы здесь ещё транзакцию. В случае ошибки откат таблиц в базе данных в исходное положение, то есть, до начала записи.

p.s.
В случае с id ситуация чуть непонятная, поэтому дописал своё предположение. Подправьте на свои данные.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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