我正在使用Gii生成模型的Yii2。我想要做的是自定义我的模型,以便所有模型都具有以下功能
public static function getFoobarList()
{
$models = Foobar::find()->all();
return ArrayHelper::map($models, 'id', 'foobar');
}
其中Foobar是各个型号的名称。
先感谢您。
您可以为模型创建自定义模板,gii可以使用该模板来生成您的类。
例如,将以下内容添加到文件副本/vendor/yiisoft/yii2-gii/generators/model/default/model.php
和存储在其中的新文件的顶部,@app/myTemplates/model/default
/**
* your doc string
*/
public static function get<?php echo $className; ?>List()
{
$models = static::find()->all();
return ArrayHelper::map($models, 'id', static::tableName());
}
会将您要查找的方法添加到使用新模板创建的任何模型中。
在您的配置中
// config/web.php for basic app
// ...
if (YII_ENV_DEV) {
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',
'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'],
'generators' => [ //here
'model' => [ // generator name
'class' => 'yii\gii\generators\model\Generator', // generator class
'templates' => [ //setting for out templates
'myModel' => '@app/myTemplates/model/default', // template name => path to template
]
]
],
];
}
允许您在使用gii时从“代码模板”菜单中选择自定义模板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句