说明
在Symfony2中,允许用户切换到任何其他用户很容易.我的问题是,如何允许某些用户只切换到某些其他用户?我正在使用FOSUserBundle作为我的用户提供商.
例
有5个用户,UserA,UserB,UserC,UserD,UserE,但只有3个链接在一起.
UserA可以切换到UserB和UserC
UserB可以切换到UserA和UserC
UserC可以切换到UserA和UserB
谢谢你的帮助!
我有一个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)
问题是,在某些情况下,我希望有两个不同的文本用于相同的翻译(不是用于复数).以下是我希望它的工作方式:
在yml文件中定义两个文本,用于需要具有不同文本的翻译.每个人都有自己独特的后缀
translation-identifier-suffix1
translation-identifier-suffix2
Run Code Online (Sandbox Code Playgroud)定义一个全局规则,定义应该选择哪个后缀.Psuedocode如下:
public function getSuffix() {
return rand(0, 10) < 5 ? '-suffix1' : '-suffix2';
}
Run Code Online (Sandbox Code Playgroud)Twig(和PHP)看起来一样 - 我仍然只指定没有后缀的标识符.然后,翻译器会将后缀附加到标识符并尝试查找匹配项.如果没有匹配,它将尝试再次找到匹配而没有后缀.
我使用startService()从我的主要活动启动一个服务.该服务检查localhost上的套接字.收到套接字时,它会从中读取数据.我想在收到包含特定数据的套接字时隐藏通知栏.我已经编写了一个函数hideNotificationBar(),它位于我的主要活动中.问题是我不知道如何在服务的主要活动中调用此函数.谢谢你的帮助!
我在浏览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.我的问题是,如果没有复杂的框架,最好的方法是什么?
我在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)
问题是,我应该在哪里(或者更确切地说)设置过滤器的参数?
我遇到了有关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
我想知道为什么输出以下代码:
$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 ×4
symfony ×3
android ×1
behavior ×1
call ×1
doctrine ×1
doctrine-orm ×1
filter ×1
function ×1
get ×1
if-statement ×1
map ×1
query-string ×1
routes ×1
routing ×1
service ×1
translation ×1