fogs / tagging-bundle
在您的Symfony2项目中标记任何实体。
此包的规范存储库似乎已消失,因此包已被冻结。
Requires
- php: >=5.4
- fpn/tag-bundle: @dev
- max-favilli/tagmanager: dev-master
- twitter/typeahead.js: @dev
This package is auto-updated.
Last update: 2024-07-26 18:03:28 UTC
README
在您的Symfony2项目中标记任何实体。此扩展包负责前端(使用 max-favilli/tagmanager 的 jQuery 插件)和后端(使用 FabienPennequin/FPNTagBundle,这是一个围绕 Doctrine 扩展的方便包装)。
导航
安装
使用 Composer
您可以使用 composer 添加此扩展包
$ php composer.phar require max-favilli/tagmanager:dev-master $ php composer.phar require fogs/tagging-bundle:@dev
或者您可以直接编辑 composer.json
文件,在其中需要添加以下内容
"require": {
"max-favilli/tagmanager": "dev-master",
"fogs/tagging-bundle":"@dev"
}
设置扩展包
要开始使用扩展包,请在您的 Kernel 中注册它。此文件通常位于 app/AppKernel
public function registerBundles()
{
$bundles = array(
// ...
new FPN\TagBundle\FPNTagBundle(),
new Fogs\TaggingBundle\FogsTaggingBundle(),
);
)
(您知道如何删除 FPNTagBundle() 的那一行吗?请告诉我。或者更好的是:分叉并修复。谢谢。)
通过在您的配置中添加一个导入语句来激活扩展包的配置。此文件通常位于 app/config/config.yml
imports: # ... - { resource: "@FogsTaggingBundle/Resources/config/config.yml" }
为此扩展包添加路由。如果计划使用自动完成,则需要这样做。此文件通常位于 app/config/routing.yml
fogs_tag: resource: "@FogsTaggingBundle/Controller" type: annotation prefix: /
转储所有新安装的资产并更新数据库模式
$ app/console assetic:dump $ app/console doctrine:schema:update --force
确保加载扩展包的 CSS 和 JS 文件。您很可能想在 app/Resources/views/base.html.twig
中这样做。
<link rel="stylesheet" type="text/css" href="{{ asset('css/tagging.css') }}" />
由于 JS 代码依赖于 JQuery,因此 <script>
标签必须在 JQuery 加载之后。
<script src="{{ asset('js/tagging-bundle.js') }}"></script>
设置实体
在此示例中,我们使用实体 Profile
- 您的实体名称可能不同。
use Fogs\TaggingBundle\Interfaces\Taggable; use Fogs\TaggingBundle\Traits\TaggableTrait; /** * Profile */ class Profile implements Taggable { use TaggableTrait; // ... }
特性需要 PHP >5.4 - 如果无法升级,也可以将 TaggableTrait 类的内容复制并粘贴到实体中,而不是使用 use TaggableTrait;
。然而,每次这样做时,小海豹都会死去,所以请考虑再次升级。
之后,向实体表单构建器中添加一个新的输入
class ProfileType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder // .. ->add('tags', 'tags') ; }
现在您应该能够编辑实体并使用标签。
要访问分配的标签,请使用实体的 tags 属性。在 twig 中可以这样做
<ul> {% for key, value in profile.tags %} <li>{{ value }}</li> {% endfor %} </ul>