我想在Sonata Admin Bundle中为创建和编辑操作创建不同的字段配置。
有没有办法确定它,除了检查$this->getSubject()->getId()
中的Sonata\AdminBundle\Admin\Admin::configureFormFields()
?
答案 0 :(得分:27)
你也可以这样做:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
答案 1 :(得分:2)
使用:
if($this->getRequest()->get($this->getIdParameter()) == null){
// create
} else {
// edit
}
答案 2 :(得分:1)
我用这个:
$creationMode = ($this->id($this->getSubject()))?(false):(true);
if ($creationMode){
//Ok
}
答案 3 :(得分:1)
来自版本3.x的sonata admin
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
在版本3.x之前的sonata admin中使用:
$subject = $this->getSubject();
if ($subject->isNew()) {
// CREATE
}
else {
// EDIT
}
答案 4 :(得分:0)
你也可以这样做:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
答案 5 :(得分:0)
public function getAction(): ?string
{
if (! $this->getRequest()) {
return null;
}
$pathArray = \explode('/', $this->request->getPathInfo());
return \end($pathArray);
}