edumedia / comment-bundle
3.0.1
2024-09-24 08:47 UTC
Requires
- php: >=8.2
- doctrine/orm: ^3.2
- symfony/config: ^7.0
- symfony/dependency-injection: ^7.0
- symfony/framework-bundle: ^7.0
- symfony/http-kernel: ^7.0
- symfony/security-bundle: ^7.0
- symfony/twig-bridge: ^7.0
Requires (Dev)
- symfony/console: ^7.0
README
如何使用
安装包
composer require edumedia/comment-bundle
创建评论类
<?php // src/Entity/Comment.php <?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use eduMedia\CommentBundle\Entity\CommentInterface; use eduMedia\CommentBundle\Entity\CommentTrait; use Symfony\Component\Security\Core\User\UserInterface; #[ORM\Entity] #[ORM\Table] class Comment implements CommentInterface { use CommentTrait; #[ORM\ManyToOne(targetEntity: User::class)] private ?UserInterface $author = null; }
使实体可评论
以下是一个用户示例
<?php // src/Entity/User namespace App\Entity; use eduMedia\CommentBundle\Entity\CommentableInterface; use eduMedia\CommentBundle\Entity\CommentableTrait; class User implements /* (...) */ CommentableInterface { use CommentableTrait; // (...) }
添加到EasyAdmin中的列表/添加评论的管理员路由
# config/routes/edumedia_comment.yaml edumedia_comment: resource: '@eduMediaCommentBundle/Resources/config/routes.yaml' prefix: '/admin/comments'
用户CRUD示例
<?php // src/Controller/Admin/UserCrudController.php namespace App\Controller\Admin; use App\Entity\User; // (...) class UserCrudController extends AbstractCrudController { public function configureCrud(Crud $crud): Crud { return $crud->overrideTemplate('crud/edit', 'admin/user/edit.html.twig'); } }
{# templates/admin/user/edit.html.twig #} {% extends '@EasyAdmin/crud/edit.html.twig' %} {% block main %} {{ parent() }} {% include '@eduMediaComment/admin/comments/crud.html.twig' %} {% endblock %}
可选:使用非默认的评论类FCQN
# config/services.yaml services: eduMedia\CommentBundle\Service\CommentService: arguments: $commentClass: 'MyCustomApp\Entity\Comment'
迁移,创建表
bin/console make:migration bin/console doctrine:migrations:migrate