Народ, такая беда:
Есть таблица 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!