2016-10-11 35 views
1

我有問題渲染視圖創建新的實體,並不能找到存在的問題,在這裏被回答,所以我要問... 我的應用程序有實體X是屬於一個實體Y,可以有許多實體Z.異常而呈現的形式插入新的實體[Symfony2中]

當主機運行時,它與所有那些關係很好執行。

php app\console doctrine:schema:update --force,

CRUD生成用於實體X之後,清單頁面顯示正常,但創造新的記錄頁面拋出以下異常:

一個例外的渲染過程中被拋出模板 (「警告:call_user_func_array()預計參數1是一個有效的回調 ,階級‘的Symfony \橋\嫩枝\推廣\ FormExtension’不 有一個方法在 %path_to_app%\應用\緩存 'renderer->人源化' \ dev的\樹枝\在線路中form_div_layout.html.twig 16 \ 16033db1d32d7d10db7a0d24db2f49938a4b2e9a63d231d90bf70d1969563fd0.php 線880" )232

什麼能問題?

更新1:

異常的觸發規定在數據從控制器傳遞樹枝文件。 在{{form_widget(形式)}}

更新2:

//控制器的方法

/** 
* 
* 
* @Route("/new", name="class_new") 
* @Template() 
*/ 
public function newAction() 
{ 
    $entity = new Class(); 
    $form = $this->createForm(new ClassType(), $entity); 

    return array(
     'entity' => $entity, 
     'form' => $form->createView(), 
    ); 
} 

// Form類

class ClassType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('name') 
     ; 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Admin\MainBundle\Entity\Class' 
     )); 
    } 

    public function getName() 
    { 
     return 'admin_mainbundle_classtype'; 
    } 
} 

//視圖

<form action="{{ path('class_create') }}" method="post" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 
    <p> 
     <button type="submit">Create</button> 
    </p> 
</form> 

回答

0

我解決了這個幾個星期前,但現在我發現時間來回答。 在將應用程序版本從2.1改爲2.8之前,這讓我很頭疼。現在它運作良好。

0

嘗試清空緩存:php bin/console cache:clear,並重新運行命令。

如果問題persit:如果你使用一個未定義功能爲例renderer->humanize,並期待layout.html.twig at line 232.

+0

儘管我已經在做緩存清理,但問題仍然存在。 – OHNH

+0

該佈局來自依賴關係。控制器和其他東西都是由php app \ console doctrine:generate:crud自動生成的。我無法更改供應商目錄中的代碼。 – OHNH

0

我沒有看到你的控制器和視圖的任何問題,在您的控制器一下。

所以我試圖尋找在form_div_layout.html.twig文件,我發現,人文化的功能是用來那裏,除了說功能是沒有定義。

所以你能以更新項目:composer install

form_div_layout.html.twig:

{%- block form_label -%} 
    {% if label is not same as(false) -%} 
     {% if not compound -%} 
      {% set label_attr = label_attr|merge({'for': id}) %} 
     {%- endif -%} 
     {% if required -%} 
      {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} 
     {%- endif -%} 
     {% if label is empty -%} 
      {%- if label_format is not empty -%} 
       {% set label = label_format|replace({ 
        '%name%': name, 
        '%id%': id, 
       }) %} 
      {%- else -%} 
       {% set label = name|humanize %} 
      {%- endif -%} 
     {%- endif -%} 
     <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</label> 
    {%- endif -%} 
{%- endblock form_label -%} 

{%- block button_label -%}{%- endblock -%}