./script/solar make-model
Vendor_Model_TableName
[--table=table_name
]
[--extends=Vendor_Model_ParentClass
]
[--connect=true|false
]
./script/solar make-model
Vendor_Model_TableName
上面这条命令使用默认的SQL数据库连接创建一个模型类,并且从类名中获取数据库表名。此命令将在数据库中查找table_name
表;它会自动把首字母大写分隔的形式转换成下划线分隔的形式。并且它使用Vendor_Sql_Model
类作为它的父类。
$ ./script/solar make-model Vendor_Model_TableName Making model 'Vendor_Model_TableName'. Will write to 'SYSTEM/include/'. Using table 'table_name'. Not using inheritance. Making class directory ... done. Writing model class ... done. Writing record class ... done. Writing collection class ... done. Connecting to database for metadata ...connected. Fetching table cols ... done. Fetching index info ... done. Writing metadata class ... done. Creating locale directory ... done. Saving locale file for en_US ... done. Done. $
上面的命令做了什么?
-
该命令创建3个类及它们对应的目录:
Vendor_Model_TableName
(模型映射类),Vendor_Model_TableName_Record
(模型记录类),Vendor_Model_TableName_Collection
(模型记录集类)。 -
然后,该命令连接数据库去获取表的字段和索引信息。获取的元数据将会被存储在
Vendor_Model_TableName_Metadata
类中。如果你再次调用make-model
命令,这个元数据会被重写,所以不要去手动修改它。(你可以通过向命令传递--connect=false
,使它不连接数据库。) -
最后,使用上面获得的元数据,该命令为模型创建初基本的本地文件。
./script/solar make-model
Vendor_Model_OtherName
--table=table_name
上面这条命令使用默认的SQL数据库连接创建一个模型类,并且显示指定要使用的数据库表名。
./script/solar make-model
Vendor_Model_TableName
--extends=Vendor_Model_ParentClass
上面这条命令使用默认的SQL数据库连接创建一个模型类,并且隐式指定要使用的数据库表名。
然而,它使用Vendor_Model_ParentClass
作为它的父类,而不是默认的Vendor_Sql_Model
类。默认情况下,这意味着我们正在创建的模型使用的表名和Vendor_Model_ParentClass
相同,并且它会激活单表继承功能。