jakharbek/yii2-datamanager

yii2 datamanager

安装: 644

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2018-05-10 08:14 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:36:11 UTC


README

yii2 datamanager

安装

安装此扩展的首选方式是通过composer

运行以下命令之一:

php composer.phar require --prefer-dist jakharbek/yii2-datamanager "*"

或者在您的composer.json文件的require部分添加以下内容:

"jakharbek/yii2-datamanager": "*"

使用方法

为了开始使用此扩展,您需要在使用之前设置所有关系。

然后,在您打算使用的模型上应用行为

jakharbek\datamanager\behaviors\DataModelBehavior

例如,我们将使用帖子(Posts)模型和人物(Persons)模型,并在帖子与人物之间建立联系

示例

class Posts{

    private $_personsdata;
    
    public function behaviors()
    {
        return [
                    'data_persons_model' => [
                        'class' => \jakharbek\datamanager\behaviors\DataModelBehavior::className(),
                        'attribute' => 'personsdata',
                        'relation_name' => 'persons',
                        'relation_model' => new Persons(),
                    ]
                ];

   }
   
   public function getPersonsdata(){
        return $this->_personsdata;
   }
   public function setPersonsdata($value){
        return $this->_personsdata = $value;
   }
 }

动作

在您配置了模型之后,您需要连接“动作”,以便扩展知道在哪里查找数据

jakharbek\datamanager\actions\Action

属性

 /**
     * @var string имя таблица по который нужно произвести поиск
     */
    public $table = "posts";
    /**
     * @var string имя первичного ключа
     */
    public $primaryColumn = "post_id";
    /**
     * @var string имя поля по которому нужно искать
     */
    public $textColumn = "title";
    /**
     * @var string другие поля который нужно вернуть через пробел как и в SQL
     */
    public $otherColumns = '';

示例

class Posts{

    public function actions(){
        return [
            'getdata' => [
                'class' => 'jakharbek\datamanager\actions\Action',
                'table' => 'posts',
                'primaryColumn' => 'post_id',
                'textColumn' => 'title'
            ],
        ];
    }
    
    
}

配置完模型后,您需要输出小部件

  • model_db - 当前模型的名称
  • name - 表单输入框的名称。
  • attribute - 赋予数据的属性名称
  • attribute_id - 数据库中与相关表关联的主键字段名称
  • attribute_text - 数据库中与相关表关联的名称字段名称
 echo jakharbek\datamanager\widgets\InputWidget::widget([
                    'model_db' => $model,
                    'name' => 'Posts[personsdata]',
                    'attribute' => 'personsdata',
                    'attribute_id' => 'person_id',
                    'attribute_text' => 'title',
                    'relation_name' => 'persons',
                    'url' => '/posts/posts/getdata/',
            ]);