oachoor/rating-bundle

为 Symfony 提供星级评分功能

安装: 210

依赖: 0

建议者: 0

安全: 0

星级: 5

关注者: 3

分支: 5

开放问题: 2

类型:symfony-bundle

dev-master 2019-12-19 11:53 UTC

This package is auto-updated.

Last update: 2024-09-19 22:30:18 UTC


README

此 Symfony 扩展包提供星级评分系统的集成。

要求

  • PHP 7.2+
  • MySQL 5.7.20+
  • Symfony 4.3+

📦 安装

首先使用 Composer 依赖管理器安装包,运行以下命令

$ composer req oachoor/rating-bundle

添加路由

oa_rating:
    resource: '@RatingBundle/Controller'
    type: annotation

(可选) 创建自己的实体

实体不完全满足您的需求?那么您可以根据 RatingVote 创建自己的。

使用 RatingBundle 或您自定义的实体解决抽象实体

doctrine:
    orm:
        resolve_target_entities:
            RatingBundle\Model\AbstractVote: RatingBundle\Entity\Vote or AcmeRatingBundle\Entity\Vote
            RatingBundle\Model\AbstractRating: RatingBundle\Entity\Rating or AcmeRatingBundle\Entity\Rating
            Symfony\Component\Security\Core\User\UserInterface: RatingBundle\Entity\User or AcmeRatingBundle\Entity\User

定义映射包

确保您已注册包含实体的包,如下所示

doctrine:
    orm:
        entity_managers:
            default:
                mappings:
                    RatingBundle: ~ or AcmeRatingBundle: ~

更新数据库模式

$ bin/console doctrine:schema:update --force --no-debug

使用投票策略

评分有两种策略,基于 IP 地址或 cookie。(都行?欢迎贡献)

oa_rating:
    strategy: cookie (default "ip")
    cookie_name: your_custom_name
    cookie_lifetime: '+1 year'

模板定制

模板可以在 <your-project>/templates/bundles/RatingBundle/ 目录中覆盖,新的模板必须使用与原始模板相同的名称和路径(相对于 RatingBundle/Resources/views/)。

要覆盖 Resources/views/rating/view.html.twig 模板,创建此模板: <your-project>/templates/bundles/RatingBundle/rating/view.html.twig

用法

要查看内容的评分结果(只读模式),使用以下 twig 代码

{{ render( controller( 'RatingBundle:Rating:result', {'contentId': yourContentId} ) ) }}

评分基于内容,要为内容启用投票,使用以下 twig 代码

{{ render( controller( 'RatingBundle:Rating:vote', {'contentId': yourContentId} ) ) }}

示例

一个包含评分调用、javascript 和样式表的 模板

待办事项

  • 使用户依赖项可选。
  • 编写一些单元测试。
  • 添加测试数据。