我有一個Symfony應用程序,它使用Sonata作爲後端管理和Sylius產品管理平臺。覆蓋資源控制器
我在管理類configureRoutes方法中創建了自己的創建路由。我想調用我們的資源控制器(將用於處理所有產品對象)來自奏鳴曲的CRUD方法。
這裏是我的configureRoutes方法迄今:
protected function configureRoutes(RouteCollection $collection)
{
$collection->add('create', 'create', array(
'_controller' => 'AppBundle:Backend/Resource:createAction',
'_sylius' => array(
'template' => 'AppBundle:Product/Backend/Form:CreateProduct.html.twig',
'redirect' => 'sylius_backend_product_show',
)
)
);
}
,但我得到了以下錯誤:
我resourceController擴展sylius資源控制器:
namespace AppBundle\Controller\Backend;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController as BaseController;
use Symfony\Component\HttpFoundation\Request;
/**
* Class ResourceController
* @package AppBundle\Controller\Backend
*/
class ResourceController extends BaseController
{
/**
* @param Request $request
*
* @return RedirectResponse|Response
*/
public function createAction(Request $request)
{
// Custom view logic
return parent::createAction($request);
}
}
我的app/config.yml:
sylius_product:
driver: doctrine/orm
classes:
product:
model: AppBundle\Entity\Product
controller: AppBundle\Controller\Backend\ResourceController
form:
default: AppBundle\Form\Type\ProductType
translatable:
targetEntity: AppBundle\Entity\ProductTranslation
product_translation:
model: AppBundle\Entity\ProductTranslation
sylius_resource:
resources:
app.backend.product:
driver: doctrine/orm
object_manager: default
classes:
controller: AppBundle\Controller\Backend\ResourceController
model: AppBundle\Entity\Product
如何滿足構造函數參數?
Sylius控制器是服務,所以應該在'sylius.controller.product:createAction'格式中調用,而不是'Sylius:Product:create'。 – qooplmao
添加這個答案作爲我的男人:) – Kal
出於好奇,從你可以看到,你可以做同樣的事情,但對於資源控制器,所以你可以通過'sylius.controller.resource'來調用它。 – Kal