Skip to content

Latest commit

 

History

History
79 lines (59 loc) · 2.2 KB

README.md

File metadata and controls

79 lines (59 loc) · 2.2 KB

Yii2 LinkAll

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

Behavior to handle saving multiple many to many related records in Yii2.

Installation

The preferred way to install this extension is through composer.

Either run

$ composer require cornernote/yii2-linkall "*"

or add

"cornernote/yii2-linkall": "*"

to the require section of your composer.json file.

Usage

Post Model

class Post extends ActiveRecord
{
    public function behaviors()
    {
        return [
            \cornernote\linkall\LinkAllBehavior::className(),
        ];
    }

    public function getTags()
    {
        return $this->hasMany(Tag::className(), ['id' => 'tag_id'])
            ->viaTable('post_to_tag', ['post_id' => 'id']);
            //->via('postToTag');
    }
}

Tag Model

class Tag extends ActiveRecord
{

}

Post Controller

class PostController extends Controller
{
    public function actionExample()
    {
        $post = Post::findOne(1);
        $tags = [Tag::findOne(2), Tag::findOne(3)];
        
        $extraColumns = []; // extra columns to be saved to the many to many table
        $unlink = true; // unlink tags not in the list
        $delete = true; // delete unlinked tags
        
        $post->linkAll('tags', $tags, $extraColumns, $unlink, $delete);
    }
}