我有这样的听众
use Doctrine\Common\EventSubscriber;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\Common\Persistence\Event\PreUpdateEventArgs;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\Events;
class MachineSubscriber implements EventSubscriber
Run Code Online (Sandbox Code Playgroud)
和方法
/**
* @param PreUpdateEventArgs $args
*/
public function preUpdate(PreUpdateEventArgs $args)
Run Code Online (Sandbox Code Playgroud)
和教义抛出异常
ContextErrorException:可捕获的致命错误:传递给 Certificate\MachineBundle\Event\MachineSubscriber::preUpdate() 的参数 1 必须是 Doctrine\Common\Persistence\Event\PreUpdateEventArgs 的实例,给定的 Doctrine\ORM\Event\PreUpdateEventArgs 实例,
这很奇怪,因为我使用了正确的课程。
我在 GitHub 上看到默认配置使用优先级标签,如下所示:
<service id="security.access.simple_role_voter" class="%security.access.simple_role_voter.class%" public="false">
<tag name="security.voter" priority="245" />
</service>
Run Code Online (Sandbox Code Playgroud)
我在AccessDecisionManager本身中找不到对这个“优先级”的任何引用。
priority
设置对决策过程有什么影响?
我正在努力更换 LdapUserProvider。
我创建了我自己的提供程序(基于 LdapUserProvider 但检索更多信息的 App\Security\MyLdapUserProvider)和我自己的用户界面(App\Security\MyUser),具有更多属性来存储数据。
最后我想检索用户的组和显示名称。
这是我的配置:
服务.yaml:
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
- host: 10.106.1.1
port: 389
#encryption: tls
options:
protocol_version: 3
referrals: false
Run Code Online (Sandbox Code Playgroud)
安全.yaml:
providers:
#in_memory: { memory: ~ }
my_ldap:
ldap:
service: Symfony\Component\Ldap\Ldap
base_dn: "dc=XXXXXX,dc=com"
search_dn: "CN=XXXXXXXXXX,OU=LDAP,OU=Services Accounts,OU=Administration,DC=XXXXXXXXX,DC=com"
search_password: "ergergergergerg"
default_roles: ROLE_USER
filter: "({uid_key}={username})"
uid_key: samAccountName
#password_attribute: displayName
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: …
Run Code Online (Sandbox Code Playgroud) 出于性能原因,我想使用mysql的INSERT DELAYED查询来持久保存日志对象.
你有什么想法可以使用学说来执行吗?
我有一个使用 Ubuntu 16 设置的 EC2 服务器,并安装了 LAMP 和 Symfony3。
\n\n服务器在线,所以没有问题。
\n\n我已将我的 Symfony 文件上传到 /var/www/html/project 并成功设置了我的parameter.yml 文件,设置了数据库,并完成了所有安装要求。我已经完成了composer.phar安装,学说:架构:更新等 - 这一切都有效。
\n\n我已将 000-default.conf 更改为以下内容并重新启动了 apache。
\n\n<VirtualHost *:80>\n ServerName site.com\n ServerAlias dev.site.com\n\n ServerAdmin admin@site.com\n DocumentRoot /var/www/html/project/web\n DirectoryIndex app.php\n <Directory /var/www/html/project/web >\n DirectoryIndex app.php\n AllowOverride All\n Allow from All\n </Directory>\n\n # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,\n # error, crit, alert, emerg.\n # It is also possible to configure the loglevel for particular\n # modules, e.g.\n #LogLevel info …
Run Code Online (Sandbox Code Playgroud) 我正在将fileupload系统与fosuserbundle集成
我需要覆盖updateUser函数
/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Doctrine/UserManager.php
Run Code Online (Sandbox Code Playgroud)
我把这个文件复制到了
/ACME/UserBundle/Doctrine/UserManager.php
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
这是我的临时/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Doctrine/UserManager.php
public function updateUser(UserInterface $user, $andFlush = true)
{
$this->updateCanonicalFields($user);
$this->updatePassword($user);
//it works but it should not be used here.
$user->upload();
//
$this->objectManager->persist($user);
if ($andFlush) {
$this->objectManager->flush();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我在我的网站上使用Pinterest共享.为了分享标题我正在使用og元标记,如下所示:
<meta property="og:title" content="ABC SCHOOL2">
Run Code Online (Sandbox Code Playgroud)
现在我想分享一下描述.请告诉我哪个og mata标签用于描述?
我有一个文档描述了我的应用程序中的模型,我想在文档加载后更改字段值,我发现这样做的方法是使用事件监听器.我在config/services.yml中添加了一个新的监听器(postLoad监听器),我无法弄清楚如何获取文件并在发送之前对其进行更改.
帮助将不胜感激.:)
这是我添加到config/service.yml(在服务下)
core.listener:
class: Matan\CoreBundle\EventListener\DocumentListener
tags:
- { name: doctrine_mongodb.odm.event_listener, event: postLoad }
Run Code Online (Sandbox Code Playgroud)
DocumentListener.php
namespace Matan\CoreBundle\EventListener;
use Matan\CoreBundle\Document\App;
class DocumentListener
{
public function postLoad()
{
//I Want to change it here
}
}
Run Code Online (Sandbox Code Playgroud) 我在config.yml中有以下内容
twig:
globals:
locale_list_sg: Singapore
locale_list_cn: China
Run Code Online (Sandbox Code Playgroud)
在我的twig模板中,我希望根据一个参数得到"Singpaore"和"China"的值.因此,我将它们连接起来并显示:
{{'locale_list_' ~ countryId}}
Run Code Online (Sandbox Code Playgroud)
但是,上面将显示locale_list_sg而不是进入config.yml并提取值.
是否可以在捆绑扩展中获得学说服务?
我可以访问容器,但无法获得学说服务。
...
class UltroExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container){
$dm = $container->get('doctrine_mongodb');
...
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:服务定义“doctrine_mongodb”不存在。