【发布时间】:2013-07-23 23:21:49
【问题描述】:
我想为 Sonata Admin Bundle 中的创建和编辑操作创建不同的字段配置。
除了在Sonata\AdminBundle\Admin\Admin::configureFormFields()中检查$this->getSubject()->getId()之外,还有什么方法可以确定吗?
【问题讨论】:
标签: symfony sonata-admin
我想为 Sonata Admin Bundle 中的创建和编辑操作创建不同的字段配置。
除了在Sonata\AdminBundle\Admin\Admin::configureFormFields()中检查$this->getSubject()->getId()之外,还有什么方法可以确定吗?
【问题讨论】:
标签: symfony sonata-admin
与:
if($this->getRequest()->get($this->getIdParameter()) == null){
// create
} else {
// edit
}
【讨论】:
您也可以这样做:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
【讨论】:
我用这个:
$creationMode = ($this->id($this->getSubject()))?(false):(true);
if ($creationMode){
//Ok
}
【讨论】:
您也可以这样做:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
【讨论】:
在版本 3.x 的奏鸣曲管理中
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
在 3.x 版本之前的奏鸣曲管理中使用:
$subject = $this->getSubject();
if ($subject->isNew()) {
// CREATE
}
else {
// EDIT
}
【讨论】:
public function getAction(): ?string
{
if (! $this->getRequest()) {
return null;
}
$pathArray = \explode('/', $this->request->getPathInfo());
return \end($pathArray);
}
【讨论】: