小编Eln*_*mov的帖子

使用路线链接表格标签

在我的注册表单中,我有一个复选框"我接受条款",并希望将"条款"一词链接到我的条款页面.

有没有办法使用路由添加表单标签的链接?(最好不要在表格中注入容器)

symfony

6
推荐指数
3
解决办法
6570
查看次数

使用symfony更改语言环境2.1

有一些问题在symfony 2.1网站上更改区域设置.

我找不到一种能够在不使用_locale每条路线的情况下更改lang的方法.我知道这是违反基本规则的,但是这个内容例如不会被引擎索引,因为它只是成员.

通常,我想要一个简单的方法来更改请求(BC版本2.1)或会话上的区域设置,但无法弄清楚如何顺利地执行此操作.我也想避免使用Listener.

config.yml文件:

framework:
    translator:      { fallback: %locale% }
    session:
Run Code Online (Sandbox Code Playgroud)

routing.yml文件:

route_change_lang:
    pattern:   /changelang/{newlang}
    defaults:  { _controller: AcmeCoreBundle:Default:switchLanguage, newlang: en }
    requirements:
        newlang: en|fr|de
Run Code Online (Sandbox Code Playgroud)

更新路由器区域设置的简单操作:

public function switchLanguageAction($newlang)
{

    $request = $this->getRequest();

    $request->setLocale($newlang);

    $referer_url = $this->get('request')->headers->get('referer');
    if ($referer_url != null) {
        return $this->redirect($referer_url);
    } else {
        return $this->redirect($this->generateUrl('route_home'));
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是什么?我想它与主config.yml文件中设置的default_locale有关,但是文档不是很清楚,任何帮助/提示都表示赞赏

php symfony symfony-2.1

6
推荐指数
1
解决办法
5964
查看次数

Symfony2 - 在命令中查找标记服务

我想知道是否有办法在Command中找到标记服务.

我有一个扩展的Command ContainerAwareCommand,我能够访问容器,但我希望得到所有由特定标签标记的服务.例如,我想有类似的东西:

$this->getContainer()->findTaggedServiceIds('smtp.transport')
Run Code Online (Sandbox Code Playgroud)

command dependency-injection symfony symfony-2.1

6
推荐指数
1
解决办法
4423
查看次数

在控制器中使用爬虫

// src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php
namespace Acme\DemoBundle\Tests\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class DemoControllerTest extends WebTestCase
{
    public function testIndex()
    {
        $client = static::createClient();

        $crawler = $client->request('GET', '/demo/hello/Fabien');

        $this->assertGreaterThan(0, $crawler->filter('html:contains("Hello Fabien")')->count());
    }
}
Run Code Online (Sandbox Code Playgroud)

这在我的测试中工作正常,但我想在控制器中也使用这个爬虫.我该怎么做?

我做路线,并添加到控制器:

<?php

// src/Ens/JobeetBundle/Controller/CategoryController

namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Acme\DemoBundle\Entity\Category;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class CategoryController extends Controller
{   
  public function testAction()
  {
    $client = WebTestCase::createClient();

    $crawler = $client->request('GET', '/category/index');
  }

}
Run Code Online (Sandbox Code Playgroud)

但这会给我带来错误:

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /acme/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php on line 24
Run Code Online (Sandbox Code Playgroud)

php testing unit-testing symfony

6
推荐指数
1
解决办法
1922
查看次数

Symfony Twig形式特定领域的主题

我有一个自定义表单字段类型和相关的表单主题.在一个页面上,我有很多这些领域,但我特别想改变其中一个领域.

有没有办法以不同方式对同一类型(和同一文件)中的某些字段进行主题化?

一个简化的例子:

form_fields.html.twig :(本地主题文件)

{% block my_dropdown_row %}
<div>
    {{ form_label(form) }}
    {{ form_widget(form) }}
    {{ form_errors(form) }}
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在我的表单模板中(所有这些字段具有相同的类型 - my_dropdown

{{ form_row(form.selectionA) }}
{{ form_row(form.selectionB) }}
{{ form_row(form.selectionC) }}
{{ form_row(form.final_selection) }}
Run Code Online (Sandbox Code Playgroud)

如何将最终字段的样式与其他字段区分开来?这些小部件中有很多代码,因此重复性越低越好.

symfony-forms symfony twig symfony-2.1

6
推荐指数
1
解决办法
2万
查看次数

symfony2.1捆绑版本混淆,用于symfony和sonata admin/knp菜单捆绑

我想将symfony2.1用于新项目.我尝试用composer安装symfony2.但是存在多个错误/问题,因此我也以粗体字体样式对每个问题提出疑问.有时我不知道我是否以正确的方式做到了.

我想使用稳定版本,所以我选择了2.1.0版本而不是dev/master.

php composer.phar create-project symfony/framework-standard-edition symfony v2.1.0
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

Installing symfony/framework-standard-edition (v2.1.0)
  - Installing symfony/framework-standard-edition (v2.1.0)
    Downloading: 100%

    Created project in symfony
    Loading composer repositories with package information
    Installing dependencies from lock file
    Your requirements could not be resolved to an installable set of packages.

      Problem 1
        - Installation request for symfony/symfony == 2.1.9999999.9999999-dev -> satisfiable by                                               symfony/symfony 2.1.x-dev.
        - Can only install one of: symfony/symfony dev-master, symfony/symfony 2.1.x-dev.
        - Installation request for symfony/symfony == 9999999-dev -> satisfiable …
Run Code Online (Sandbox Code Playgroud)

symfony composer-php symfony-2.1 sonata-admin knpmenubundle

6
推荐指数
1
解决办法
7991
查看次数

如何基于关系实现Doctrine2过滤器?

我有一个Doctrine2监听器和过滤器,可以过滤掉任何未经批准的/草案实体,它可以在应用它的实体上正常工作,但是,我不知道如何使它适用于它的关系.

让我们说实体被称为类别,然后我有与该类别相关的产品,当我findBy()为产品做一个时,我需要查询来检查它们所涉及的类别是否被批准.

select * from products p
left join category c on p.category_id = c.id
where p.id = 5 and c.approved = true

粗体位是需要由我的过滤器或等效物注入的.

我该如何实现呢?

到目前为止,我有一个子查询作为过滤器中的一部分注入,但这似乎是地狱般的,我认为必须有一个更好的方法:

class ApprovableFilter extends SQLFilter
{
    protected $listener;
    protected $entityManager;

    public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
    {
        $config = $this->getListener()->getConfiguration($this->getEntityManager(), $targetEntity->name);

        /* this bit works fine for the category */

        if (isset($config['approvable']) && $config['approvable']) {
            $column = $targetEntity->columnNames[$config['fieldName']];

            return $targetTableAlias.'.'.$column.' = true';
        }

        /* this bit works for products.. but seems like a pretty …
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm symfony-2.1

6
推荐指数
1
解决办法
1875
查看次数

RegistrationFormType :: buildForm()不兼容

我只是将我的Symfony 2.0.12项目升级到2.1.我还安装了FosUserBundle,但是当我运行命令时

php composer.phar update
Run Code Online (Sandbox Code Playgroud)

然后作曲家输出一个错误:

Loading composer repositories with package information
Updating dependencies
Writing lock file
Generating autoload files
PHP Fatal error:  Declaration of User\UserBundle\Form\Type\RegistrationFormType::buildForm() must be compatible with that of Symfony\Component\Form\FormTypeInterface::buildForm() in /home/mark/dev/proj/src/User/UserBundle/Form/Type/RegistrationFormType.php on line 38

Fatal error: Declaration of User\UserBundle\Form\Type\RegistrationFormType::buildForm() must be compatible with that of Symfony\Component\Form\FormTypeInterface::buildForm() in /home/mark/dev/proj/src/User/UserBundle/Form/Type/RegistrationFormType.php on line 38
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception
Run Code Online (Sandbox Code Playgroud)

它说的是我以前的RegistrationFormType与新的Symfony 2.1表单界面不兼容.

我的composer.json

// ...
"friendsofsymfony/user-bundle": "*",
//...
Run Code Online (Sandbox Code Playgroud)

我的RegistrationFormType.php

<?php

namespace User\UserBundle\Form\Type;

use Symfony\Component\Form\FormBuilderInterface;
use …
Run Code Online (Sandbox Code Playgroud)

forms symfony fosuserbundle symfony-2.1

6
推荐指数
1
解决办法
1万
查看次数

无法在Symfony 2.1.1中生成引导程序文件

我有一个为Symfony 2.0编写的应用程序,我已经开始将它迁移到Symfony 2.1中.我已成功使用composer安装了所有依赖项,但脚本失败了......

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-update-cmd event terminated with an exception



  [RuntimeException]                                     
  An error occurred when generating the bootstrap file.  
Run Code Online (Sandbox Code Playgroud)

任何线索?我完全迷失了,而且我用谷歌搜索了它,但我只在一个论坛上发现了一个帖子,其中的人和我有同样的问题......

symfony symfony-2.1

6
推荐指数
1
解决办法
5282
查看次数

如何区分分段/生产与动态库存?

我被卡住了.用网络搜索地狱,无法找到答案.

我多年来一直在使用Ansible,但总是使用静态库存.针对不同的环境,如分期和生产区分开来,我用不同的静态清单文件,stagingproduction分别.当我需要配置登台服务器时,我会这样做:

ansible-playbook site.yml -i staging
Run Code Online (Sandbox Code Playgroud)

当我想为生产做同样的事情时,我会这样做:

ansible-playbook site.yml -i production
Run Code Online (Sandbox Code Playgroud)

分段和生产都需要具有不同值的变量,所以我有group_vars/staginggroup_vars/production.一切都很好,并根据最佳实践.

现在,我需要在AWS中配置EC2实例.我正在使用此AWS指南.我有一个有两个剧本的剧本.第一个是localhost在AWS中运行,创建/查找所需的EC2实例,并使用填充组add_host.第二个游戏使用该组来对抗在第一个游戏中发现的EC2实例.全部根据该指南.

除了一件事,这一切都很有效.我不知道如何指定要配置的环境,因此未加载所需的变量group_vars/(staging|production).基本上,我想要的是类似于-i (staging|production)我多年来使用静态库存的东西,但似乎现在使用-i没有意义,因为库存是动态的.我希望有一种方法可以从任何一个group_vars/staginggroup_vars/production基于ansible-playbook我运行它时传递给的参数加载变量.

我怎么做?什么是最佳做法?

ansible ansible-playbook

6
推荐指数
1
解决办法
3079
查看次数