我有一个复杂的实体,看起来像这样类似:Yii2:帖子复杂的模型
class Article extends \yii\db\ActiveRecord {
public $id;
public $name;
/** @var ArticleAspectValue[] */
public $aspects;
public function getArticleAspectValues() {
return $this->hasMany(ArticleAspectValue::className(), ['article_id' => $this->id]);
}
}
而且我作为上面的更复杂的实体部分的实体。
class ArticleAspectValue extends \yii\db\ActiveRecord {
public $aspect_id; // <--- Two-attributes identifier (two-col PK in db)
public $article_id; // <----'
public $value;
}
尽管每篇ArticleAspectValue也分配给ArticleAspect和Article,但一篇文章只有自己的ArticleAspectValues。
模型文章由一个id,一个名称和一个名为ArticleAspectValues的子实体组成。
我解决了为每个ArticleAspectValue创建输入字段的问题,但是由于这是一个简单的for-每个前端都没有连接到后面的模型。
问题:表单和接收控制器方法看起来像是为了在子实体上发布新值,但根据他们的高级模型,文章?
PS的doc on complex models是TBD
与您的问题无关,但不要这样做 'class ArticleAspectValue extends \ yii \ db \ ActiveRecord {public $ aspect_id; public $ article_id;'如果你这样做,你实际上不会读取数据库中的值。如果这些是列,就不要在tll声明它们。文章 – 2015-02-11 03:07:36
也是如此,它只是示例代码。在RL中,我使用注释的属性和魔法获取器。 – Domi 2015-02-11 10:01:49