jakharbek / yii2-categories
Categories
Installs: 516
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- jakharbek/yii2-langs: dev-master
- kartik-v/yii2-tree-manager: @dev
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2025-03-06 12:19:42 UTC
README
Categories
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist jakharbek/yii2-categories "*"
or add
"jakharbek/yii2-categories": "*"
to the require section of your composer.json
file.
Usage
Once the extension is installed, simply use it in your code by :
You need to connect a controller or an action to the controller
controller
'controllerMap' => [ 'categories' => 'jakharbek\categories\controllers\CategoriesController' ],
action
public function actions() { return [ 'categories' => [ 'class' => 'jakharbek\categories\actions\CategoriesAction' ] ]; }
You must have an extension
jakharbek/yii2-langs
You need to connect i18n for translations
'jakhar-categories' => [ 'class' => 'yii\i18n\PhpMessageSource', 'basePath' => '@vendor/jakharbek/yii2-categories/src/messages', 'sourceLanguage' => 'en', 'fileMap' => [ 'jakhar-categories' => 'main.php', ], ],
and migrate the database
yii migrate --migrationPath=@vendor/jakharbek/yii2-categories/src/migrations
Update (Active Record) - Single
example with Posts elements
You must connect behavior to your database model (Active Record)
'category_model'=> [ 'class' => CategoryModelBehavior::className(), 'attribute' => 'categoriesform', 'separator' => ',', ],
example
use jakharbek\categories\behaviors\CategoryModelBehavior; class Posts extends ActiveRecord { private $_categoriesform; public function behaviors() { ... 'category_model'=> [ 'class' => CategoryModelBehavior::className(), 'attribute' => 'categoriesform', 'separator' => ',', ], ... } ... public function getCategoriesform(){ return $this->_categoriesform; } public function setCategoriesform($value){ return $this->_categoriesform = $value; } }
Afterwards you need to add your widget form.
jakharbek\categories\widgets\CategoriesWidget::widget
example
echo jakharbek\categories\widgets\CategoriesWidget::widget([ 'selected' => $model->categoriesSelected(), 'model_db' => $model,'name' => 'Posts[categoriesform]' ]);
and of course do not forget to prescribe links for your model
public function getPostscategories() { return $this->hasMany(Postscategories::className(), ['post_id' => 'post_id']); } public function getCategories() { return $this->hasMany(Categories::className(), ['id' => 'id'])->viaTable('postscategories', ['post_id' => 'post_id']); }
It's all!