valentinek/yii2-closure-table-behavior

This extension allows you to get functional for closure table trees.

Installs: 13 443

Dependents: 0

Suggesters: 0

Security: 0

Stars: 16

Watchers: 3

Forks: 6

Type:yii2-extension

0.8.0 2015-01-24 08:48 UTC

This package is not auto-updated.

Last update: 2024-12-17 02:09:50 UTC


README

Yii2 port of the yii-closure-table-behavior. Extension allows managing trees stored in database via closure-table method.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require valentinek/yii2-closure-table-behavior "*"

or add

"valentinek/yii2-closure-table-behavior": "*"

to the require section of your composer.json file.

Configuring

First you need to configure model as follows:

class Category extends ActiveRecord
{
    public $leaf;

	public function behaviors() {
		return [
			[
				'class' => ClosureTable::className(),
				'tableName' => 'category_tree'
			],
		];
	}

	public static function find()
	{
		return new CategoryQuery(static::className());
	}
}

Second you need to configure query model as follows:

class CategoryQuery extends ActiveQuery
{
	public function behaviors() {
		return [
			[
				'class' => ClosureTableQuery::className(),
				'tableName' => 'category_tree'
			],
		];
	}
}

Migrations / Changing database schema

After configuring your model, you must copy migration file from behavior migrations folder to your project migrations folder. Please read the comments in file, change migration as you need and run migration:

php yii migrate

Also you change database schema directly using an example from .sql dump file in schema folder.

Road map

1. Write documentation
2. Write tests
3. bug fixes
4. EVENT_DELETE
5. DeleteNode method refactoring
6. isAncestor() and isDescendant() methods