配置CommentCrudController创建评论管理页面-Symfony5全面开发

您需要登录后才可观看此视频

为了更好的为您提供服务,请您登录后再查看本课程。

立即登录 注册账号

我们已经创建了CommentCrudController类,回到页面我们点开Comment菜单,在右上角点击Add Comment按钮,表单中Created At和Updated At,两个表单行是不需要的。

我们需要在CrudController类中配置字段,取消configureFields()方法的注释,id字段就使用IdField,同样的IdField我们只让它在首页显示。然后是作者属性,作者使用TextField,下面是$email属性EasyAdminBundle提供了email字段,我们选择EasyAdminBundle下的EmailField字段 属性的话输入email,评论消息这里我们使用TextAreaField,创建时间和更新时间,我们可以复制上节课的代码。复制这四行。

class CommentCrudController extends AbstractCrudController
{
    // ...

    public function configureFields(string $pageName): iterable
    {
        return [
            IdField::new('id')->onlyOnIndex(),
            TextField::new('author'),
            EmailField::new('email'),
            TextareaField::new('message'),
            AssociationField::new('post'),
            CommentImageField::new('files')->onlyOnIndex(),
            TimeField::new('createdAt')
                ->setFormat('Y-MM-dd HH:mm:ss')->onlyOnIndex(),
        ];
    }

    // ...
}

现在我们刷新页面,这样字段就已经配置好了,回到评论首页,我们并不需要在管理端添加评论,所有的评论都是在文章的详情页进行添加的,所以我们要删除Add Comment这个按钮。回到项目,我们按着command键点击AbstractCrudController类,在这个类中提供了一个configureActions()方法。我们可以设置Actions对象,来删除首页的Add Comment按钮。

回到CommentCrudController类,我们覆盖configureActions()方法,使用Actions对象的remove()方法可以删除页面上的按钮。remove()方法的第一个参数就是页面的名称,第二个参数是Action的名称,我们想要删除index页面的添加按钮,页面名称我们可以使用Crud类提供的常量,按钮的名称我们可以使用Action类的常量。如果你不懂这个方法的话,你可以查看EasyAdminBundle的文档。

class CommentCrudController extends AbstractCrudController
{
    // ...

    public function configureActions(Actions $actions): Actions
    {
        return $actions->remove(Crud::PAGE_INDEX, Action::NEW);
    }

    // ...
}

回到页面刷新,现在我们就没有了添加评论的按钮,在文章的详情页,如果有用户提交了评论,将会在Comment列表中进行显示。

我们已经创建了博客的管理到页面,在下节课,我们将安装模板引擎来使用模板引擎为我们的博客添加前台页面。

课程讨论

当前内容评论功能已关闭。