【发布时间】:2014-09-28 17:49:42
【问题描述】:
我正在尝试在我的 Sonata Admin 类中注入 service container,以便在 configureFormFields 方法中使用它。这就是我所拥有的:
config.yml(奏鸣曲服务定义)
services:
tan.product.admin.product:
class: Tan\ProductBundle\Admin\ProductAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: Product, label: Product }
arguments: [ null, Tan\ProductBundle\Entity\Product, @service_container]
ProductAdmin.php
class ProductAdmin extends Admin
{
/** @var \Symfony\Component\DependencyInjection\ContainerInterface */
private $container;
public $supportsPreviewMode = true;
/**
* @param string $code
* @param string $class
* @param string $baseControllerName
*/
public function __construct($code, $class, $baseControllerName, $container = null)
{
parent::__construct($code, $class, $baseControllerName);
$this->container = $container;
}
// other methods
protected function configureFormFields(FormMapper $form)
{
$helper = $this->container->get('oneup_uploader.templating.uploader_helper');
$endpoint = $helper->endpoint('products');
$form
->add('product_name', null, array('label' => 'Nombre'))
->add('product_description', null, array('label' => 'Descripción'));
}
}
但是我收到了这个错误:
ContextErrorException:可捕获的致命错误:类的对象 appDevDebugProjectContainer 无法转换为字符串 /var/www/html/tan/var/cache/dev/classes.php 第 12979 行
怎么了?
【问题讨论】:
-
为什么你不能将 'SonataAdminBundle:CRUD' 作为参数传递?
-
@Gara 我从不知道为什么它传递该参数的地方复制了它,以前从未见过它,反正我只是删除了参数并且问题仍然存在所以这不是问题
标签: php symfony dependency-injection sonata-admin php-5.5