小编Žan*_*rle的帖子

允许仅在Symfony2中切换/模拟特定用户

说明

在Symfony2中,允许用户切换到任何其他用户很容易.我的问题是,如何允许某些用户只切换到某些其他用户?我正在使用FOSUserBundle作为我的用户提供商.

有5个用户,UserA,UserB,UserC,UserD,UserE,但只有3个链接在一起.

UserA可以切换到UserB和UserC

UserB可以切换到UserA和UserC

UserC可以切换到UserA和UserB

谢谢你的帮助!

switch-statement symfony

9
推荐指数
1
解决办法
7451
查看次数

Symfony2中翻译的高级自定义

我有一个Symfony2项目,我正在使用Translation组件来翻译文本.我在yml文件中的所有翻译都是这样的

translation-identifier: Translated text here
Run Code Online (Sandbox Code Playgroud)

翻译文本看起来像这样 Twig

'translation-identifier'|trans({}, 'domain')
Run Code Online (Sandbox Code Playgroud)

问题是,在某些情况下,我希望有两个不同的文本用于相同的翻译(不是用于复数).以下是我希望它的工作方式:

  1. yml文件中定义两个文本,用于需要具有不同文本的翻译.每个人都有自己独特的后缀

    translation-identifier-suffix1
    
    translation-identifier-suffix2
    
    Run Code Online (Sandbox Code Playgroud)
  2. 定义一个全局规则,定义应该选择哪个后缀.Psuedocode如下:

     public function getSuffix() {
       return rand(0, 10) < 5 ? '-suffix1' : '-suffix2';
     }
    
    Run Code Online (Sandbox Code Playgroud)
  3. Twig(和PHP)看起来一样 - 我仍然只指定没有后缀的标识符.然后,翻译器会将后缀附加到标识符并尝试查找匹配项.如果没有匹配,它将尝试再次找到匹配而没有后缀.

php translation symfony

7
推荐指数
3
解决办法
3978
查看次数

如何从服务中调用主要活动中的功能?

我使用startService()从我的主要活动启动一个服务.该服务检查localhost上的套接字.收到套接字时,它会从中读取数据.我想在收到包含特定数据的套接字时隐藏通知栏.我已经编写了一个函数hideNotificationBar(),它位于我的主要活动中.问题是我不知道如何在服务的主要活动中调用此函数.谢谢你的帮助!

service android function call android-activity

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

在PHP中映射路由的最简单方法

我在浏览Symfony的网站.我真的不觉得我需要框架提供的所有功能,但我确实喜欢路由部分.它允许您指定这样的URL模式

/some/path/{info}
Run Code Online (Sandbox Code Playgroud)

现在,对于URL,www.somewebsite.com/app.php/some/path/ANYTHING它允许您向客户端发送特定于此URL的响应.您也可以使用字符串ANYTHING并将其用作GET参数.还可以选择隐藏URL的app.php部分,这样我们就可以使用URL了www.somewebsite.com/some/path/ANYTHING.我的问题是,如果没有复杂的框架,最好的方法是什么?

php routing routes map

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

在Symfony2中的每个请求上设置Doctrine过滤器的参数

我在Symfony2项目中有一个Doctrine过滤器.我试图在每个请求上将filter的参数设置为某个值(取自session).问题是过滤器对象是在Symfony的onKernelRequest事件之后创建的,所以我无法从那里设置它.如果我尝试在Doctrine的postConnect事件中设置它,则会检测到循环依赖关系:

ServiceCircularReferenceException: Circular reference detected for service "doctrine.orm.private_entity_manager", path: "routing.loader -> assetic.asset_manager -> twig -> translator.default -> doctrine.orm.private_entity_manager -> doctrine.dbal.private_connection -> year_visibility.parameter_setter".
Run Code Online (Sandbox Code Playgroud)

问题是,我应该在哪里(或者更确切地说)设置过滤器的参数?

doctrine filter symfony doctrine-orm

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

重写包含问号的网址

我遇到了有关URL重写的问题.我正在使用Apache的mod重写来重写URL.例如,我重写了URL

  • www.website.com/some/path/
  • request.php?string=some/path/.

然后我显示该URL的具体响应.现在我的重写规则如下所示:

RewriteRule ^([a-z_/\?]+)$ request.php?string=$1
Run Code Online (Sandbox Code Playgroud)

但问题是,如果我有URL www.website.com/some/data/?id=12&name=John并重写它,我得到这样的东西:request.php?string=some/data/?id=12&name=John.似乎在这个例子中另一个问号混淆了PHP.如果我尝试$_GET['string']在request.php中检索,我得到的是:some/data/.

有关进一步参考,Gmail会使用与其URL相似的内容:
https://mail.google.com/mail/?ui=1&shva=1

php get url-rewriting query-string

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

PHP中条件的奇怪行为

我想知道为什么输出以下代码:

$a = log(5, 5);
$b = round(log(5, 5));
echo 'a: ';
var_dump($a);
echo '<br>';
echo 'b: ';
var_dump($b);
echo '<br>';
echo ($a == $b) ? 'equal' : 'not equal';
Run Code Online (Sandbox Code Playgroud)

这个

a: float(1) 
b: float(1) 
not equal
Run Code Online (Sandbox Code Playgroud)

感谢任何能够向我解释的人.

php if-statement behavior

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