You are viewing revision #12 of this wiki article.
This is the latest version of this article.
You may want to see the changes made in this revision.
Use this extension : yii2-relation-trait
yii2-relation-trait ¶
Yii 2 Models add functionality for load with relation, & transactional save with relation
Installation ¶
The preferred way to install this extension is through composer.
Either run ~~~ $ composer require mootensai/yii2-relation-trait ~~~
or add
"mootensai/yii2-relation-trait": "*"
to the require
section of your composer.json
file.
Usage ¶
It takes a normal array of POST. This is the example
$POST['ParentClass'] = ['attr1' => 'value1','attr2' => 'value2'];
$POST['RelatedClass'][0] = ['attr1' => 'value1','attr2' => 'value2'];
usage at controller
public function actionCreate(){
$model = new MyModel;
if($model->loadAll(Yii:$app->request->post()) && $model->saveAll()){
return $this->redirect('view', 'id' => $model->id, 'created' => $model->created]);
}
}
usage at model
class MyModel extends ActiveRecord{
use \mootensai\relation\RelationTrait;
}
output
print_r($model->getAttributesWithRelatedAsPost());
Array
(
[MainClass] => Array
(
[attr1] => value1
[attr2] => value2
)
[RelatedClass] => Array
(
[0] => Array
(
[attr1] => value1
[attr2] => value2
)
)
)
print_r($model->getAttributesWithRelated());
Array
(
[attr1] => value1
[attr2] => value2
[relationName] => Array
(
[0] => Array
(
[attr1] => value1
[attr2] => value2
)
)
)
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.