mrmammoth
@mrmammoth
PHP fullstack

Yii2 relations NULL Foreign key Как правильно делать CREATE/UPDATE?

Народ, такая беда:
Есть таблица groups
...
'file_id' => $this->integer(),
...
И есть таблица files
...
'id' => $this->primaryKey()->notNull()->unique(),
'filename' => $this->string(),

...
$this->addForeignKey(
            'file-id',
            'groups',
            'file_id',
            'files',
            'id',
            'CASCADE'
        );

Gii нагенерил:
class Groups extends \yii\db\ActiveRecord
{
...
[['file_id'], 'default', 'value' => null],
[['file_id'], 'integer'],
[['file_id'], 'exist', 'skipOnError' => true, 'targetClass' => Files::className(), 'targetAttribute' => ['file_id' => 'id']],
...
public function getFile()
{
    return $this->hasOne(Files::className(), ['id' => 'file_id']);
}
...
class Files extends \yii\db\ActiveRecord
{
...
public function getGroups()
{
    return $this->hasMany(Groups::className(), ['file_id' => 'id']);
}
...
public function actionMyaction($id)
{
...
$model = $this->findModel($id);  
...
return $this->render('Myaction', [
    'model' => $model,
]);

теперь я могу в форме Myaction при наличии отличного от NULL значения file_id таблицы Groups и соответствующего ему значения в таблице Files id получить значение filename:

<?= $form->field($model->file, 'filename')->textInput(); ?>


Беда начинается если в таблице Files нет соответствующего значеия
Call to a member function isAttributeRequired() on null

Предполагаю, что гдето должно быть New Files(), но вот только где?
Please Help!
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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