porcelanosa / yii2-options
设置选项的 Yii2 扩展
dev-master
2016-08-01 14:17 UTC
Requires
- php: >=5.4.0
- bower-asset/sortablejs: *
- bower-asset/vue: *
- bower-asset/vue-resource: *
- kartik-v/yii2-grid: @dev
- porcelanosa/yii2-toggle-column: *
- vova07/yii2-imperavi-widget: *
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-14 18:53:12 UTC
README
警告!正在开发中
安装
本文档将指导您使用 composer 安装 yii2-options。安装是一个快速简便的几个步骤的过程。
注意:在我们开始之前,请确保您已正确配置了 db 应用组件。
步骤 1:使用 composer 下载
将 yii2-options 添加到您的 composer.json 文件的 require 部分
{ "require": { "porcelanosa/yii2-options": "dev-master" } }
然后运行以下命令使用 composer 下载扩展
$ php composer.phar update
步骤 2:配置您的应用程序
将选项模块添加到 web 和 console 配置文件中,如下所示
... 'modules' => [ ... 'options' => [ 'class' => 'porcelanosa\yii2options\Module', 'layout' => '@app/modules/admin/views/layouts/main', 'model_path' => '@app/modules/admin/models/*.php', // models php files 'modelNamespace' => 'app\modules\admin\models\', // models namespace 'fileUrl' => '/storage/uploads/richtext/files', 'filePath' => '@storage/uploads/richtext/files', 'imageUrl' => '/storage/uploads/richtext/images', 'imagePath' => '@storage/uploads/richtext/images', ], ... ], ...
配置请求解析器
'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ],
配置 Karik-V 模块
'modules' => [ 'gridview' => [ 'class' => '\kartik\grid\Module' ] ],
步骤 3:更新数据库模式
下载并配置 yii2-options 后,您需要执行的最后一步是应用迁移来更新您的数据库模式
$ php yii migrate/up --migrationPath=@vendor/porcelanosa/yii2-options/migrations
菜单项
['label' => Yii::t('app', 'ADMIN_NAV_STATUS_TYPES'), 'url' => ['/options/optiontypes/index']], ['label' => Yii::t('app', 'ADMIN_NAV_OPTIONS_LIST'), 'url' => ['/options/optionslist/index']],
步骤 4:调整模型
添加行为
use porcelanosa\yii2options\models\Options; use porcelanosa\yii2options\OptionsBehavior; use porcelanosa\yii2options\ChildOptionsBehavior; use porcelanosa\yii2options\components\helpers\MyHelper; public function behaviors() { return [ 'optionsBehavior' => [ 'class' => OptionsBehavior::className(), 'model_name' => $this::className(), // convert className to model name without namespace 'uploadImagePath' => Yii::getAlias( '@webroot' ) . '/uploads/cats/', // alias of upload folder 'uploadImageUrl' => Yii::getAlias( '@web' ) . '/uploads/cats/', // alias of upload folder // admin application url without end slash 'appUrl' => '/backend' ], }
例如,在 Items 模型中添加 Child 行为
'childOptionsBehavior' => [ 'class' => ChildOptionsBehavior::className(), 'model_name' => $this::className(), 'parent_model_name' => '\common\models\Cats', // relation name for parent model, e.q. if relation function is getCat() - relation name is "cat" 'parent_relation' => 'cat', 'uploadImagePath' => Yii::getAlias( '@storage' ) . '/uploads/items/', // alias of upload folder 'uploadImageUrl' => '/storage/uploads/items/', // Yii::getAlias( '@storageUrl' ) . alias of upload folder // admin application url without end slash 'appUrl' => '/backend' ],
添加绑定参数
public $modelFrontName = 'Категории'; //if not define $modelFrontName - not show in dropdown list in optionslist controller // in Parent model define Child model public $childModels = [ 'Items'=>'Товары в категории', ];
步骤 5:在管理视图中显示选项
<? echo \porcelanosa\yii2options\OptionsWidget::widget( [ 'model' => $model, 'behaviorName' => 'optionsBehavior' ] ); ?>
或对于 Child Options
<? echo \porcelanosa\yii2options\ChildOptionsWidget::widget( [ 'model' => $model, 'behaviorName' => 'childOptionsBehavior' ] ); ?>