Symfony 2,CRUD不工作.哪种版本的Symfony最好用


Symfony 2, CRUD is not working. Which version of Symfony is the best to use?

我无法使用带有Symfony的CRUD生成。我相信这很可能取决于Symfony版本。哪种版本的Symfony最好用?

今天我更新了Symfony:

c:'Bitnami'wampstack-5.5.30-0'sym_prog>php symfony self-update

我收到消息:将Symfony安装程序更新到1.4.0

后来我做了一个新项目:

c:'Bitnami'wampstack-5.5.30-0'sym_prog'proj2>php symfony new proj2 lts

//它意味着长期支持收到一条消息:OK Symfony 2.8.0已成功安装。现在您可以:*将当前目录更改为C:''Bitnami''wampstack-5.530-0''sym_prog''prj2*在app/config/parameters.yml文件中配置您的应用程序。*运行您的应用程序:1.执行php应用程序/控制台服务器:run命令。2.浏览到http://localhost:8000URL。*阅读文档,网址:http://symfony.com/doc

在生成实体之后,我遇到了crud的问题。

c:'Bitnami'wampstack-5.5.30-0'sym_prog'proj2>php app/console doctrine:generate:crud MeetingBundle:User
The Entity shortcut name [MeetingBundle:User]:
Do you want to generate the "write" actions [no]? Yes
Configuration format (yml, xml, php, or annotation) [annotation]:
Routes prefix [/user]:

虽然crud生成控制器和视图(后者不是在bundle/resources/view中生成的,而是在app/resources/views中生成的),但crud不生成表单,因此我无法创建/更新/查看/删除用户或其他实体!

我相信这只取决于Symfony的版本。因此,哪一个版本最好使用?

我不知道哪个Symfony版本为crud生成表单。

但在我的情况下,我只是创建了自定义表单:C: ''Bitnami''wampstack-5.530-0''sym_prog''proj2''src''MeetingBundle''Form''UserType.php

<?php
namespace MeetingBundle'Form;
use Symfony'Component'Form'AbstractType;
use Symfony'Component'Form'FormBuilderInterface;
use Symfony'Component'OptionsResolver'OptionsResolverInterface;
class UserType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username')
            ->add('password')
            ->add('email')
            ->add('phone')
           // ->add('roles') 
       /* ERROR: An exception has been thrown during the rendering of a template 
  ("Notice: Array to string conversion") in form_div_layout.html.twig at line 13. 
                http://stackoverflow.com/questions/17314996/symfony2-array-to-string-conversion-error
                */
            ->add('isActive')
            ->add('events')
                // createdAt
        ;
    }
    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MeetingBundle'Entity'User'
        ));
    }
    /**
     * @return string
     */
    public function getName()
    {
        return 'meetingbundle_user';
    }
}

并从控制器中使用:C: ''Bitnami''wampstack-5.530-0''sym_prog''proj2''src''MeetingBundle''Controller''UserController.php

...
use MeetingBundle'Form'UserType;
....
class UserController extends Controller {
...
    public function editAction(Request $request, User $user)
    {
...
        $editForm = $this->createForm(new UserType(), $user);

使用命令:

>php app/console doctrine:generate:crud

Symfony 2.7.7版和Symfony 2.3.35版-在src/Namespace/Bundle/Resources/views/EntityName文件夹中生成实体视图。它还使用文件EntitnyNameType.php生成控制器和文件夹Form。Crud功能齐全。

Symfony 2.8.0版(长期支持)-为app/Resources/views/EntitnyName文件夹中的实体生成视图,还生成控制器。它不生成Form,因此CRUD不起作用。

p.s。要检查您使用的Symfony版本:

c:'Bitnami'wampstack-5.5.30-0'sym_prog'star>php app/console --version

要为您的项目使用特定版本的Symfony,您必须在项目创建过程中告知:

$ symfony new my_project_name 2.6

http://symfony.com/doc/current/book/installation.html

如果有人能提供更多关于哪种Symfony版本更好的信息,请让我知道。