solutosoft/yii-linkmany
Composer 安装命令:
composer require solutosoft/yii-linkmany
包简介
Load, validate and save automatically related Active Record models
README 文档
README
Load, validate and save automatically hasMany relations.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist solutosoft/yii-linkmany
or add
"solutosoft/yii-linkmany": "*"
to the require section of your composer.json.
Usage
This extension provides support for ActiveRecord hasMany relation saving.
This support is granted via [[\solutosoft\linkmany\LinkManyBehavior]] ActiveRecord behavior. You'll need to attach
it to your ActiveRecord class and point the target "has-many" relation for it:
class Post extends ActiveRecord { public function behaviors() { return [ 'linkManyBehavior' => [ 'class' => LinkManyBehavior::class, 'relations' => [ 'tags', 'messages' => [ 'formName' => 'Post[messages]', 'validate' => false, 'deleteOnUnlink' => false ] ] ], ]; } public function getMessages() { return $this->hasMany(Message::class, ['post_id' => 'id']); } public function getTags() { return $this->hasMany(Tag::class, ['id' => 'tag_id']) ->viaTable('post_tag', ['post_id' => 'id']); } }
Being attached [[\solutosoft\linkmany\LinkManyBehavior]] you can load data using the method [[\solutosoft\linkmany\LinkManyBehavior::fill]]
use yii\web\Controller; class PostController extends Controller { public function actionCreate() { $model = new Post(); /** * $_POST could be something like: * [ * 'tags' => [1,2] * 'comments' => [ * [ * 'subject' => 'First comment', * 'content' => 'This is de fist comment', * ], [ * 'subject' => 'Second comment', * 'content' => 'This is de second comment', * ] * ] * ]; */ if ($model->fill(Yii::$app->request->post())) { $model->save(); // save the model and relations return $this->redirect(['view']); } return $this->render('create', [ 'model' => $model, ]); } }
Credits
This Package is inspired by:
I wanted to have a combination of both. Thanks to both authors.
统计信息
- 总下载量: 2.34k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2019-09-26