bridn / taxonomy
CakePHP 3.x 简单分类插件
v0.3
2014-09-27 22:00 UTC
Requires
- php: >=5.4.19
- cakephp/cakephp: 3.0.x-dev
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-24 03:54:24 UTC
README
简单分类插件,您可以为实体添加标签或分类等。
需求
- CakePHP 3.x
- CakePHP 迁移插件 (Phinx >= v0.3.8)
1 - 首先,使用迁移插件创建表
cd to your app path
src/Console/cake migrations migrate -p Taxonomy
有关迁移的更多信息请参阅: http://github.com/cakephp/migrations
2 - 加载 Taxonomy 插件(app/config/bootstrap.php)
Plugin::load('Taxonomy', ['bootstrap' => false, 'routes' => true]);
3 - 为您的 Table 模型添加行为
public function initialize(array $config)
{
$this->addBehavior('Taxonomy.TaxonomySync');
$this->addBehavior('Taxonomy.TaxonomyFinder');
}
- TaxonomySync 行为创建/更新/清理您的术语。
- TaxonomyFinder 行为管理所有类型的查询。如果您不想超载查询,可以动态地断开它。
分类插件使用多态关联,它会自动与您的模型关联。
4 - 使用 TaxonomyHelper 为内容添加标签。
将助手添加到您的内容控制器。
public $helpers = ['Taxonomy.Taxonomy'];
在查询您的内容后,插件将返回一个对象和一个与您的内容关联的术语数组。第一个参数 'tag' 将用于在数据库中分组您的术语(不要翻译此参数),第二个必须包含您的实体对象,第三个是一个 cakephp 表单参数数组(标签、行等)。例如,对于法语表单
<?= $this->Taxonomy->input('tag', $article, ['label' => __d('Taxonomy', 'Mots clés')]) ?>
<?= $this->Taxonomy->input('category', $article, ['label' => __d('Taxonomy', 'Categorie')]) ?>
5 - 控制器中的查询
返回表格和类型的所有术语(文章控制器)
$articles = $this->{$this->name}->find('all');
$categories = $this->{$this->name}->listAllTermsByType('category');
$this->set(compact('articles', 'categories'));
或
返回用于特定术语 ID 的表格的所有关系(文章控制器)
$categories = $this->{$this->name}->listAllByTableAndByTerm($id);
$this->set(compact('categories'));
6 - 注意
使用分号";"分隔您的单词