承接 e96/yii2-relational-behavior 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

e96/yii2-relational-behavior

Composer 安装命令:

composer require e96/yii2-relational-behavior

包简介

Easy saving relational models in yii2

README 文档

README

This behavior allows you to set relations in your code. Also, it saves many-to-many relations declared with via() or viaTable()

Relations accepts int|int[]|ActiveRecord|ActiveRecord[].

Install

php composer.phar require e96/yii2-relational-behavior:dev-master

Setup

In model:

class User extends ActiveRecord
{
    public function behaviors()
    {
        return [
            e96\behavior\RelationalBehavior::className(), // enable behavior
        ];
    }

    public function rules()
    {
        return [
            ['permissions', 'safe'], // allow set permissions with setAttributes()
        ];
    }

    // define many-to-many relation
    public function getPermissions()
    {
        return $this->hasMany(Permission::className(), ['id' => 'permissionId'])
            ->viaTable('user-map-permission', ['userId' => 'id']);
    }
}

In view:

$form->field($model, 'permissions')->dropDownList($permissions, ['multiple' => true])

Usage

$user->load(Yii::$app->request->post());
$user->save();

Other usages:

$user = User::findOne(1);
$user->permissions = 1;
// or
$user->permissions = [1,2];
// or
$user->permissions = Permission::findOne(1);
// or
$user->permissions = Permission::find()->all();
// or
$user->load(Yii::$app->request->post());
// or
$user->setAttributes(['permissions' => [1,2]]);
// then
$user->save();

Written with StackEdit.

统计信息

  • 总下载量: 61.42k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 4
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-02-26