atis2345
@atis2345
PHP developer

Как добавить реляционную модель при вставке модели в yii2?

Такая проблема.
Необходимо сделать так чтобы при инсерте One в БД еще и добавлялась Two. А полученный из Two->id сэтапился в One->two_id.
Выносить за пределы класса код нельзя!

/**
* @property int      $id
* @property string $field
* @property int      $two_id
*
* @property Two $two
*/
class One
{
    // необходимо добавить $this->two_id. но добавить изнутри
    // $Two = new Two();
    // $Two->fied = $this->field;
    // $Two->insert();
    // $this->two_id = $Two->id;
}

/**
* @property int $id
* @property string $field
*/
class Two
{

}

$One = new One();
$One->field = 'blablabla';
$One->insert();
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
Вы сейчас движетесь в не правильном направлении, зачем Вам создавать и связывать объекты внутри модели? это прямой путь к плохому коду. По сути дела это все кусок бизнес-логики. А бизнес-логика как известно не должна храниться в ActiveRecord (я так понимаю что Вы используете его), она должна храниться в отдельном классе.

P.S. связывать данные две записи можно с помощью link()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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