我正在寻找我应该使用的情况的解释和用例
FormModel
代替Model
让我们举一个例子,经典的Author
类
class Author extends \yii\db\ActiveRecord
{
public static function tableName()
{
return 'tbl_author';
}
public function rules()
{
return [
[['id'], 'integer'],
[['name'], 'string', 'min' => 0, 'max' => 64],
[['name'], 'required'],
[['age'], 'integer'],
];
}
public function attributeLabels()
{
return [
'id' => Yii::t('message', 'ID'),
'name' => Yii::t('message', 'Name'),
'age' => Yii::t('message', 'Age'),
];
}
public function getBook()
{
return $this->hasMany(Book::className(), ['id' => 'id_book'])->via('author_book_relation');
}
public function getAuthorBook()
{
return $this->hasMany(AuthorBook::className(), ['id_author' => 'id']);
}
}
漂亮的常规模特。
Author
id
,name
和age
属性,通过关系表Books
与AuthorBook
有关系。
对于此问题涉及的伪类AuthorForm
,我认为必须在actionCreate
和actionUpdate
中使用它。
我是否应该将它用于需要插入/更新UserInterface的每种Model
类型?
AuthorForm
的真正目的是什么?
让我有一个Mode
l仅针对那两个可能会被弄脏的案例(actionCreate
,actionUpdate
),而不必担心“真实”模型它处理数据本身?
让我为表单视图指定一些“支持变量”,我可以(例如)定义关系AuthorBook
?
答案 0 :(得分:0)
严格地说,在MVC中,Models和FormModel表达了两个不同的概念。第一个(Model)定义了所有关心管理公共属性和方法的类,无论它们的表示(视图)如何,也不管应用程序的相关性(控制器)如何。通常,术语模型也是活动记录的同义词,即与数据建模直接相关的模型,用于在数据库或检索系统中保存数据,而术语FormModel主要用于管理信息“容器”而非直接与dabatabase相关或在存储要求和数据采集需求之间执行经纪功能。在这种意义上,作为典型数据采集模型的Form在(FormModel)中建模,以便于这些操作。
因此,在需要获取或维护给定实体的情况下,申请人经常使用FormModel,因此有利于使用通用组件以获得更高的可重用性和一致性。
这是一个理论上的..在每次面对数据结构,访问方法和ricorrennte验证规则时,实践有助于使用FormModel。一个反复出现的情况是FormModel用于创建更改..一个类别被处理更多
..希望这很有用