porcelanosa/yii2-options

设置选项的 Yii2 扩展

安装: 15

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2016-08-01 14:17 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:53:12 UTC


README

警告!正在开发中 Total Downloads 安装

本文档将指导您使用 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'
    ] );
?>