所以我覆盖了AbstractAdmin
,因为我想添加一些功能,并且我所有的管理类都会有它。
它看起来像这样:
<?php
namespace AdminBundleAdmin;
use SonataAdminBundleAdminAbstractAdmin;
class BaseAdmin extends AbstractAdmin
{
....
}
如您所见,我的BaseAdmin
扩展了默认奏鸣曲AbstractAdmin
类。 如果我扩展新的 BaseAdmin,一切都运行良好,我的所有类都具有自定义函数,例如: class ProductAdmin extends BaseAdmin
但我注意到一件奇怪的事情...
我有一个使用"文件"类型上传图像的类。
如果我用BaseAdmin
扩展我的管理员类,则表单字段"file"将变成文本区域(由于某种原因,所有其他简单的文本字段也转换为文本区域)。如果我扩展默认值AbstractAdmin
一切正常..
我是否需要在配置中的某个地方指定我的新管理员类,或者这里有什么问题?
你应该向我们展示更多的代码,但从你已经告诉过的内容来看,我会说这是因为你覆盖了ProductAdmin
类中的方法。
在BaseAdmin
类中,您重写AbstractAdmin
方法并调用parent::method()
但是当重写扩展BaseAdmin
类中的方法时,您必须调用AbstractAdmin::method()
而不是parent::method()
因为您需要调用祖父方法而不是父方法。
希望有帮助