标签: symfony

Symfony2表单选择没有optgroup

我有一个数组,其中包含像这样的特定文件夹中的元素

$finder = new Finder();
$all_images = $finder->files()->in('images/questions');
$images = array();
foreach ($all_images as $image) {
     $images[$image->getRelativePathName()] = $image->getRelativePathName();
}
Run Code Online (Sandbox Code Playgroud)

var_dump输出是:

 array (size=3)
      'image3.png' => string 'image3.png' (length=10)
      'image2.png' => string 'image2.png' (length=10)
      'image1.png' => string 'image1.png' (length=10)
Run Code Online (Sandbox Code Playgroud)

我在我的表单中创建一个"choice"元素,如下所示:

->add('imageA', 'choice', array('choices' => array($images)
Run Code Online (Sandbox Code Playgroud)

我在这样的树枝中渲染这个表单元素(css并不重要):

{{ form_widget(form.imageA, { 'attr': {'class': 'rounded' } }) }}
Run Code Online (Sandbox Code Playgroud)

这会生成这个HTML代码:

<select id="create_question_type_imageA" name="create_question_type[imageA]" class="rounded">
    <option value=""></option>
    <optgroup label="0">
        <option value="image3.png">image3.png</option>
        <option value="image2.png">image2.png</option>
        <option value="image1.png">image1.png</option>
    </optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)

我需要这个选择没有optgroup,我尝试扩展为false但不起作用...

TY!

php symfony

0
推荐指数
1
解决办法
1456
查看次数

警告:缺少FOS\UserBundle\Form的参数1

我得到这个警告,似乎无法找到解决方案,我尝试了各种答案,但仍然没有

Warning: Missing argument 1 for FOS\UserBundle\Form\Type\RegistrationFormType::__construct(), called in C:\xampp\htdocs\symfony-bootstrap\src\sava\UserBundle\Controller\VerUsuarioController.php on line 77 and defined in C:\xampp\htdocs\symfony-bootstrap\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Form\Type\RegistrationFormType.php on line 25

Notice: Undefined variable: class in C:\xampp\htdocs\symfony-bootstrap\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Form\Type\RegistrationFormType.php on line 27
Run Code Online (Sandbox Code Playgroud)

我的services.yml

# src/Acme/UserBundle/Resources/config/services.yml
services:
    sava_user.registration.form.type:
        class: sava\UserBundle\Form\RegistroTypes
        arguments: [%fos_user.model.user.class%]
        tags:
            - { name: form.type, alias: sava_user_registration }
Run Code Online (Sandbox Code Playgroud)

这是我的config.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: "@savaUserBundle/Resources/config/services.yml" }
framework:
    #esi:             ~
    translator:      { fallback: %locale% }
    secret:          %secret%
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~ …
Run Code Online (Sandbox Code Playgroud)

php forms symfony fosuserbundle

0
推荐指数
1
解决办法
3065
查看次数

Symfony 2.5.6错误InvalidArgumentException:服务定义"event_dispatcher"不存在

我正在尝试在Symfony 2中构建我的第一个Compiler Pass.现在,我只是想在SampleBundle中从FrameWorkBundle获取核心event_dispatcher服务,但是我收到了这个错误:

error InvalidArgumentException: The service definition "event_dispatcher" does not exist.
Run Code Online (Sandbox Code Playgroud)

这是我的编译器的代码:

<?php
namespace Me\SampleBunlde\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;

class RegisterListenersPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {
        $definition = $container->getDefinition('event_dispatcher');
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

我有点惊讶,因为我一步一步地遵循一本专业的Symfony书,向我保证我会找到这个服务.

我已经做了一些关于这方面的研究,我发现只有debug.event_dispatcher服务是可用的.然后我检查了别名,发现有一个名为'event_dispatcher'的私有Alias指向debug.event_dispatcher.所以我真的很困惑.而且我想知道:

  • 为什么Alias是私有的?我需要将他设为公开还是错误的方式?
  • 为什么Symfony不会自动解释我的event_dispatcher调用?

谢谢您的帮助 !

symfony

0
推荐指数
1
解决办法
727
查看次数

Symfony2:如何在FormType中调用实体的存储库

我试图以我的实体Category的类形式调用我的实体的存储库BonCommande,但是这个错误出现了:

注意:未定义的属性:Application\VehiculeBundle\Form\BonCommandeType :: $ em in C:\ wamp\www\Symfony_test\src\Application\VehiculeBundle\Form\BonCommandeType.php第74行

这是我的代码:

班级BonCommandeType.php:

namespace Application\VehiculeBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormInterface;
use Application\VehiculeBundle\Entity\Category;

class BonCommandeType extends AbstractType
{
        /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
       public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // Name of the user
        $builder->add('observation', 'text');


    /* Add additional fields... */

    $builder->add('save', 'submit');

    // Add listeners
    $builder->addEventListener(FormEvents::PRE_SET_DATA, array($this, 'onPreSetData'));
    $builder->addEventListener(FormEvents::PRE_SUBMIT, array($this, 'onPreSubmit'));
}


protected function …
Run Code Online (Sandbox Code Playgroud)

forms repository symfony

0
推荐指数
1
解决办法
1754
查看次数

Symfony2评论变量和函数

我开始学习Symfony2,其中一件令我印象深刻的是上面的众多评论variables,functions如下所示:

变量示例:

    /**
 * @var string
 */
private $baseUrl = 'news/';
Run Code Online (Sandbox Code Playgroud)

要么:

/**
 * @var FeedRepository
 */
private $feedRepo;
Run Code Online (Sandbox Code Playgroud)

功能:

/**
 * @param ArticleQuery $query
 * @return QueryBuilder
 */
public function test(){


}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么要使用这些,为什么这样做..?

php symfony

0
推荐指数
1
解决办法
156
查看次数

Twig:找不到实体

我创建了一个带有existant数据的新应用程序.

我使用sonatadminbundle列出对象"Formule"的数据网格.在我的对象"Formule"中,我与对象"Contact"有关系.在我的列表中需要显示这种关系.但我知道过去有一些联系人被删除了.我想在我的行datagrid的模板中做这个:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
    {% if object.getContact.name is defined  %}
        {{ object.getContact.name }} //EntityWasNotFound
    {% else %}
        This contact was deleted in the past
    {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

因此,此错误会在行中返回EntityWasNotFound异常或删除联系人.我不知道是否有联系人.我用"不是空","定义","空"......没什么好的:(

谢谢

symfony twig sonata-admin

0
推荐指数
1
解决办法
2512
查看次数

如何在Symfony中访问Twig中的web文件夹?

我的捆绑包中有一个Twig模板,我希望能够访问我想要显示我的图片的Symfony应用程序中的web文件夹.web文件夹位于主目录中.我的图片链接来自我的数据库:

uploads/documents/image1.jpg
Run Code Online (Sandbox Code Playgroud)

在我的Twig模板中,我必须定义我的两个变量:

<img src="/{{ var.uploadDir }}{{ var.path }}" width="300px" height="150px">
Run Code Online (Sandbox Code Playgroud)

但图像未显示.它说找不到URL.是否可以在不使用"资产"的情况下访问Web路径?

php symfony twig

0
推荐指数
1
解决办法
5007
查看次数

Twig + jQuery vs angularjs

我有一个symfony2应用程序也支持REST.我想听听是否更好地了解angularjs的学习曲线或坚持使用jQuery和twig.看起来像twig已经有一些类似于angularjs中的一些很好的功能,比如过滤器和东西.此外,如果我使用角度,它将打破symfon的MVC,因为我很可能会有更少的视图.另一方面,我喜欢角度的响应性,就像新的趋势一样.你能否列出在这个范围内使用角度的一些优点和缺点?

更新 谢谢大家的详细解答,但我仍然错过了你说angularjs没有制动服务器端MVC的部分.在典型的后端MVC中,我们采用自下而上的方法,控制器与模型通信以准备传递给视图的数据.所以我的PostController会将一个Pot对象列表传递给视图并使用twig我可以很好地迭代它们并打印它们的属性.然而,在典型的角度应用中,它是另一种方式.我们采用自上而下的方法,View从零开始,然后与控制器通信以获取所需的数据(通常采用JSON格式)以呈现页面的不同部分.

jquery symfony twig angularjs

0
推荐指数
1
解决办法
2685
查看次数

Doctrine重新创建相同的索引

当我运行doctrine架构更新时,我得到了这个需要执行的奇怪查询,但它们基本上只是重做已经完成或没有?

php app/console doctrine:schema:update --dump-sql 


DROP INDEX idx_26d7e8feab772a3c ON notify;
CREATE INDEX IDX_217BEDC8AB772A3C ON notify (notifyUser_id);
DROP INDEX idx_26d7e8fea76ed395 ON notify;
CREATE INDEX IDX_217BEDC8A76ED395 ON notify (user_id);
DROP INDEX idx_26d7e8fe6bf700bd ON notify;
CREATE INDEX IDX_217BEDC86BF700BD ON notify (status_id);


    "require": {
    "php": ">=5.3.3",
    "symfony/symfony": "~2.5.3",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": "~1.2",
    "gedmo/doctrine-extensions": "2.3.*@dev",
    "stof/doctrine-extensions-bundle": "~1.1@dev",
},
Run Code Online (Sandbox Code Playgroud)

此行为阻止我使用--force更新doctrine架构,因为有外键,我收到此错误:

[PDOException]                                                                        
  SQLSTATE[HY000]: General error: 1553 Cannot drop index 'IDX_A37CA197A76ED395': neede  
  d in a foreign key constraint
Run Code Online (Sandbox Code Playgroud)

这可能是在过去更新数据库相关供应商之后开始发生的,但直到现在我还没有注意到.

symfony doctrine-orm

0
推荐指数
1
解决办法
960
查看次数

Doctrine EntityManager未注入Custom Validator

我创建了一个自定义验证器来检查两个数据库表中是否存在电子邮件.

namespace AgriHealth\AhpBundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;

/**
 * @Annotation
 */
class UniqueEmailAll extends Constraint
{
    public $message = 'This email is already in use';

    public function validatedBy()
    {
        return get_class($this).'Validator';
    }
} 

namespace AgriHealth\AhpBundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

class UniqueEmailAllValidator extends ConstraintValidator
{
    private $entityManager;

    public function __construct(EntityManager $entityManager)
    {
        $this->entityManager = $entityManager;
    }


    public function validate($value, Constraint $constraint)
    {
        $find1 = $this->entityManager->getRepository( 'AgriHealthAhpBundle:Vet')->findOneByEmail($value);
        $find2 = $this->entityManager->getRepository( 'AgriHealthAhpBundle:Farmer')->findOneByEmail($value);

        if ($find1 || $find2) {
            // If you're using the new 2.5 validation …
Run Code Online (Sandbox Code Playgroud)

validation entitymanager symfony doctrine-orm symfony-2.5

0
推荐指数
1
解决办法
2090
查看次数