oks / yii2-categories
dev-master
2018-10-15 11:37 UTC
Requires
- kartik-v/yii2-tree-manager: @dev
- oks/yii2-langs: dev-master
- wbraganca/yii2-fancytree-widget: *
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2024-10-02 04:23:08 UTC
README
分类
安装
安装此扩展的首选方式是通过composer。
运行
php composer.phar require --prefer-dist oks/yii2-categories "*"
或添加
"oks/yii2-categories": "*"
到您的composer.json
文件的require部分。
使用方法
安装扩展后,只需在您的代码中使用即可
您需要将控制器或操作连接到控制器
控制器
'controllerMap' => [
'categories' => 'oks\categories\controllers\CategoriesController'
],
操作
public function actions()
{
return [
'categories' => [
'class' => 'oks\categories\actions\CategoriesAction'
]
];
}
您必须有扩展
oks/yii2-langs
您需要连接i18n进行翻译
'oks-categories' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@vendor/oks/yii2-categories/src/messages',
'sourceLanguage' => 'en',
'fileMap' => [
'oks-categories' => 'main.php',
],
],
并迁移数据库
yii migrate --migrationPath=@vendor/oks/yii2-categories/src/migrations
参数
将参数添加到应用程序中
categories_all_types
示例
[
100 => 'Посты',
200 => 'Страницы',
300 => 'Кастинги',
700 => 'Видео',
800 => 'Фильмы',
900 => 'Телепроекты',
1000 => 'Сериалы',
1100 => 'Персоны',
1200 => 'Телепередачи',
]
更新(Active Record)- 单个
包含帖子元素的示例
您必须将行为连接到您的数据库模型(Active Record)
'category_model'=> [
'class' => CategoryModelBehavior::className(),
'attribute' => 'categoriesform',
'separator' => ',',
],
示例
use oks\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;
}
}
之后,您需要添加您的小部件表单。
oks\categories\widgets\CategoriesWidget::widget
示例
echo oks\categories\widgets\CategoriesWidget::widget([
'selected' => $model->categoriesSelected(),
'model_db' => $model,'name' => 'Posts[categoriesform]'
]);
当然,不要忘记指定模型链接
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']);
}
就这么多!