小编Eln*_*mov的帖子

在Symfony2中使用JOIN条件查找

我有3个简单的表:user,role,user_x_role with Many-To-Many relation.我有2个实体:用户和角色.用户实体具有带有关系注释的$ userRoles属性.在Controller中,我需要获取具有特定角色的所有用户.但我不知道如何在控制器中使用JOIN.目前错误的代码:

$role = $this->getDoctrine()->getRepository('TestBackEndBundle:Role');
$roles = $role->findBy(array('name' => 'ROLE_PARTNER'));

$user = $this->getDoctrine()->getRepository('TestBackEndBundle:User');
$partners = $user->findBy(array('userRoles' => $roles));
Run Code Online (Sandbox Code Playgroud)

它显示"Undefined index:joinColumns in ...".但我在用户实体中有joinColumns:

/**
 * @ORM\ManyToMany(targetEntity="Role")
 * @ORM\JoinTable(name="user_x_role",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")}
 * )
 * @var ArrayCollection
 */
protected $userRoles;
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm

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

在Symfony2中为电子邮件模板动态生成内联css样式

Symfony2中是否有工具或捆绑包允许我使用css文件创建普通模板,然后将其转换为内联css规则,以便它可以用作电子邮件的正文?

css php symfony twig

7
推荐指数
1
解决办法
4661
查看次数

使用Scallop的Scala命令行解析器

我是Scala的新手,需要构建一个非常简单的命令行解析器,它提供了我在几分钟内使用JRuby创建的以下内容: -

java -jar demo.jar --help

Command Line Example Application

Example: java -jar demo.jar --dn "CN=Test" --nde-url "http://www.example.com" --password "password"

For usage see below:

    -n http://www.example.com
    -p, --password             set the password
    -c, --capi                 set add to Windows key-store
    -h, --help                 Show this message
    -v, --version              Print version
Run Code Online (Sandbox Code Playgroud)

扇贝看起来会成功,但我似乎无法找到一个有效的简单例子!我发现的所有例子似乎都是碎片化的,不能出于某种原因或其他原因.

UPDATE

我发现这个例子有效,但我不知道如何将它绑定到main方法中的实际args中.

import org.rogach.scallop._; 

object cmdlinetest {
  def main(args: Array[String]) 

    val opts = Scallop(List("-d","--num-limbs","1"))
      .version("test 1.2.3 (c) 2012 Mr Placeholder")
      .banner("""Usage: test [OPTION]... [pet-name]
                |test is an awesome program, which does …
Run Code Online (Sandbox Code Playgroud)

scala

7
推荐指数
1
解决办法
5347
查看次数

在symfony2 Controller中注入服务

如何将服务(我创建的服务)注入到Controller中?二头注射就可以了.

<?php
namespace MyNamespace;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class MyController extends Controller
{
    public function setMyService(MyService $myService)
    {
        $this->myService = $myService;
    }

    public function indexAction()
    {
        //Here I cannot access $this->myService;
        //Because the setter is not called magically!
    }
}
Run Code Online (Sandbox Code Playgroud)

我的路线设置:

// Resources/routing.yml
myController_index:
    pattern:  /test
    defaults: { _controller: "FooBarBundle:MyController:index" }
Run Code Online (Sandbox Code Playgroud)

我正在另一个包中设置服务:

// Resources/services.yml 
parameters:
   my.service.class: Path\To\My\Service

services:
    my_service:
        class: %my.service.class%
Run Code Online (Sandbox Code Playgroud)

当路由解决时,不注入服务(我知道它不应该).我想在yml文件中的某个地方,我必须设置:

    calls:
        - [setMyService, [@my_service]]
Run Code Online (Sandbox Code Playgroud)

我没有将此Controller用作服务,它是一个为Request提供服务的常规Controller.

编辑:此时,我正在使用$ this-> container-> get('my_service')获取服务; 但我需要注射它.

dependency-injection symfony

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

如何正确缓存我的Symfony2 API?

我在Symfony2上制作经典的无状态RESTfull API:用户/应用程序在身份验证API上获取身份验证令牌,并将其提供给所有其他要记录的API,并在其他API上发布数据/访问受保护/私有/个人数据.

我现在有三个关于此工作流程和缓存的问题:

  • 如何为我的'静态'API(始终提供相同的内容,无论记录的用户及其令牌)使用HTTP缓存,假设不同的用户为同一个API在url中传递不同的令牌,以便url会永远不一样?那么如何使用HTTP共享缓存呢?

  • 对于记录的用户权限(我基本上有4种不同的权限级别),我有相同URL的API生成不同的输出.问题是:这是一个好模式吗?拥有4个不同的网址,每个网址对应一个,我可以缓存,这不是更好吗?如果没有,如何实现适当的缓存?

  • 共享HTTP缓存是否可以在HTTPS上运行?如果没有,我应该实现哪种类型的缓存,以及如何实现?

感谢您的回答和指示.

api rest caching symfony

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

使用路线链接表格标签

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

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

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.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
查看次数

无法在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
查看次数

多语言集成测试框架

想象一下,您有一个由不同组件构成的相当复杂的面向服务的体系结构.组件使用不同的语言(Java,PHP,Ruby)编写,并以不同的方式相互通信(即UI,REST API,在某些情况下共享一些DB表等).

我正在尝试为一些端到端测试设计集成测试框架.我们已经对单个组件进行了单元/集成测试,但是我们希望构建一些能够端到端地完全测试我们部署的系统(在真实环境中)的东西,以确保功能(就个人的预期行为而言)组件正确提供,并且架构也正确配置.

我面临的第一个问题是我们的大多数UI都是用PHP编写的,并且已经使用Cucumber和顶部的几个插件为它编写了UI集成测试.我正在编写的测试框架(Java)应该触发这些功能测试,然后检查相关组件的行为是否符合预期.

显然,我可以使用像Selenium这样的Java友好组件重写UI测试,但复制工作没有意义.

另一个解决方案是在Java中使用exec()调用运行现有测试,等待它们返回,可能解析输出并继续执行需要执行的其他操作/检查.

考虑到项目的编写方式,在Java中嵌入现有的PHP代码似乎不是一个可行的解决方案.

所描述的解决方案都没有让我觉得有说服力.理想情况下,拥有某种多语言(和多技术)集成框架会很好,这种集成框架可以插入用不同语言和不同环境/组件编写的相同测试套件测试中.

有没有人知道朝这个方向发展的工具或框架?如果没有,对这类问题有什么好处?

php java testing bdd integration-testing

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