我正在尝试创建一个包含收集类型数据的表单,具体取决于所记录的用户.我正在关注Symfony食谱的这一章.
当query_builder选项是一个闭包,我从DQL获取数据时,一切正常.由于需要从代码中的不同位置获取数据,我更愿意在Repository类中定义查询.
这是我的存储库中的函数:
public function findOwnedBy($user) {
$query = $this->getEntityManager()->createQuery("SELECT l FROM MyBundle:Article a JOIN a.owndBy u WHERE u.id = :userId");
$query->setParameters(array("userId"=>$user->getId()));
return $query->getResult();
}
Run Code Online (Sandbox Code Playgroud)
在Controller中调用并返回Article数组时,此函数有效.这是symfony doc的片段:
$formOptions = array(
'class' => 'Acme\DemoBundle\Entity\User',
'multiple' => false,
'expanded' => false,
'property' => 'fullName',
'query_builder' => function(EntityRepository $er) use ($user) {
// build a custom query, or call a method on your repository (even better!)
},
);
Run Code Online (Sandbox Code Playgroud)
当我在query_builder中调用我的Repository函数时,我收到一个错误:Expected argument of type "Doctrine\ORM\QueryBuilder", "array" given我可以理解,因为我的Repository返回一个Entity数组,而不是QueryBuilder.
我不想在表单中复制代码并创建新的QueryBuilder.从存储库中使用查询的最佳做法是什么?我想在存储库中有两个函数,一个返回一个数组,另一个返回QueryBuilder,但是Symfony doc中的注释" …
我没有在任何帖子上找到答案.
我在容器上使用带有PHP项目的容器,该容器工作正常.我想链接在另一个容器上启动的Java.
我使用"java:8"图像配置如下:
engine:
build: ./docker/engine/
volumes:
- ".:/home/docker:rw"
- "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
links:
- "db:db"
- "java:java"
working_dir: "/home/docker"
java:
image: java:8
tty: true
ports:
- "999:999"
Run Code Online (Sandbox Code Playgroud)
在我的docker PHP容器(调用"引擎")上,我有这个环境变量.
JAVA_1_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324
JAVA_1_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1
JAVA_1_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JAVA_1_ENV_JAVA_VERSION=8u72
JAVA_1_ENV_LANG=C.UTF-8
JAVA_1_NAME=/recetteetudiant_engine_1/java_1
JAVA_1_PORT=tcp://172.17.0.3:999
JAVA_1_PORT_999_TCP=tcp://172.17.0.3:999
JAVA_1_PORT_999_TCP_ADDR=172.17.0.3
JAVA_1_PORT_999_TCP_PORT=999
JAVA_1_PORT_999_TCP_PROTO=tcp
JAVA_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324
JAVA_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1
JAVA_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JAVA_ENV_JAVA_VERSION=8u72
JAVA_ENV_LANG=C.UTF-8
JAVA_NAME=/recetteetudiant_engine_1/java
JAVA_PORT=tcp://172.17.0.3:999
JAVA_PORT_999_TCP=tcp://172.17.0.3:999
JAVA_PORT_999_TCP_ADDR=172.17.0.3
JAVA_PORT_999_TCP_PORT=999
JAVA_PORT_999_TCP_PROTO=tcp
RECETTEETUDIANT_JAVA_1_ENV_CA_CERTIFICATES_JAVA_VERSION=20140324
RECETTEETUDIANT_JAVA_1_ENV_JAVA_DEBIAN_VERSION=8u72-b15-1~bpo8+1
RECETTEETUDIANT_JAVA_1_ENV_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
RECETTEETUDIANT_JAVA_1_ENV_JAVA_VERSION=8u72
RECETTEETUDIANT_JAVA_1_ENV_LANG=C.UTF-8
RECETTEETUDIANT_JAVA_1_NAME=/recetteetudiant_engine_1/recetteetudiant_java_1
RECETTEETUDIANT_JAVA_1_PORT=tcp://172.17.0.3:999
RECETTEETUDIANT_JAVA_1_PORT_999_TCP=tcp://172.17.0.3:999
RECETTEETUDIANT_JAVA_1_PORT_999_TCP_ADDR=172.17.0.3
RECETTEETUDIANT_JAVA_1_PORT_999_TCP_PORT=999
RECETTEETUDIANT_JAVA_1_PORT_999_TCP_PROTO=tcp
Run Code Online (Sandbox Code Playgroud)
Ping命令工作正常.但是我怎么能用java呢?我尝试使用该命令
root@639144f7c95f:/home/docker# echo $JAVA_1_PORT$RECETTEETUDIANT_JAVA_1_ENV_JAVA_HOME
tcp://172.17.0.3:999/usr/lib/jvm/java-8-openjdk-amd64
root@639144f7c95f:/home/docker# /recetteetudiant_engine_1/java_1
bash: /recetteetudiant_engine_1/java_1: No such file or directory
root@639144f7c95f:/home/docker# $JAVA_1_PORT$RECETTEETUDIANT_JAVA_1_ENV_JAVA_HOME
bash: tcp://172.17.0.3:999/usr/lib/jvm/java-8-openjdk-amd64: No …Run Code Online (Sandbox Code Playgroud) 我在 docker 容器中使用 nginx,并且可以轻松地与主机共享我的 nginx docker 容器上的日志文件。日志在它上面并在/var/log/nginx文件夹上工作。
我在主机上安装了 fail2ban 来检查日志文件,特别是access.log.
我测试了一个简单的过滤器
# Fail2Ban configuration file
# Author: Miniwark
[Definition]
failregex = ^<HOST> .*"GET .*w00tw00t
# try to access to admin directory
^<HOST> .*"GET .*admin.* 403
^<HOST> .*"GET .*admin.* 404
# try to access to install directory
^<HOST> .*"GET .*install.* 404
# try to access to phpmyadmin
^<HOST> .*"GET .*dbadmin.* 404
^<HOST> .*"GET .*myadmin.* 404
^<HOST> .*"GET .*MyAdmin.* 404
^<HOST> .*"GET .*mysql.* 404
^<HOST> .*"GET .*websql.* 404 …Run Code Online (Sandbox Code Playgroud) 我希望获取一个不存在反向关联的实体(在1:1关联上)
我收到错误:
DQL查询中不支持反向的单值关联路径表达式.请改用显式连接.
查询:
$query = $this->getEntityManager()->createQuery("
SELECT DISTINCT(p.date)
FROM MainBundle:Price p
WHERE p.emaPrice IS NULL
ORDER BY p.date ASC
")
->setMaxResults(1);
$date = $query->getOneOrNullResult();
Run Code Online (Sandbox Code Playgroud)
我理解错误,但我真的不肯修复它.我已经读过我应该添加一个明确的JOIN,但我已经添加了它,但仍然没有运气.
带连接的EDIT查询:
$query = $this->getEntityManager()->createQuery("
SELECT DISTINCT(p.date)
FROM MainBundle:Price p
JOIN MomentumBundle:EmaPrice ep
WITH ep.id = p.emaPrice
WHERE p.emaPrice IS NULL
ORDER BY p.date ASC
")
->setMaxResults(1);
$date = $query->getOneOrNullResult();
Run Code Online (Sandbox Code Playgroud)