e96 / yii2-relational-behavior
在yii2中轻松保存关系模型
dev-master
2017-12-20 17:19 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-14 16:03:20 UTC
README
此行为允许您在代码中设置关系。它还可以保存使用via()
或viaTable()
声明的多对多关系。
关系接受int|int[]|ActiveRecord|ActiveRecord[]
。
安装
php composer.phar require e96/yii2-relational-behavior:dev-master
设置
在模型中
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']); } }
在视图中
$form->field($model, 'permissions')->dropDownList($permissions, ['multiple' => true])
用法
$user->load(Yii::$app->request->post()); $user->save();
其他用法
$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();
使用StackEdit编写。