我正在部署我的Symfony2应用程序,但是我收到以下错误:
FatalErrorException in classes.php line 0:
Error: Method Symfony\Component\HttpFoundation\Request::__toString() must not throw an exception
Run Code Online (Sandbox Code Playgroud)
Apache稍微有点描述性,说明了Monolog:
PHP Fatal error: Method Symfony\\Component\\HttpFoundation\\Request::__toString() must not throw an exception in /my/path/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php on line 0
Run Code Online (Sandbox Code Playgroud)
这也是我唯一不清楚这是如何发生的事情.我本地机器上的开发环境运行正常.
我试图清除prod缓存,composer缓存和重新启动的apache服务.清除缓存后,我还做了一个新的"作曲家安装".
任何人都知道如何解决这个问题?我正在运行Symfony v2.7.4.
上传文件时收到错误消息"无法访问文件/ tmp/php4k3bf8".在这里查看完整的错误日志.
[2017-08-13 15:50:29] request.INFO: Matched route "apply_for_job". {"route":"apply_for_job","route_parameters":{"_controller":"Vendor\\FinanceBundle\\Controller\\JobResponseController::createAction","job_id":"2850","_route":"apply_for_job"},"request_uri":"https://my.site.in/job-enrollment/open-position/2850/apply","method":"POST"} []
[2017-08-13 15:50:29] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2017-08-13 15:50:29] request.CRITICAL: Uncaught PHP Exception Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException: "The file /tmp/php4k3bf8 could not be accessed" at /mnt/hdd2/ya_guest/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php line 127 {"exception":"[object] (Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException(code: 0): The file /tmp/php4k3bf8 could not be accessed at /mnt/hdd2/ya_guest/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php:127)"} []
Run Code Online (Sandbox Code Playgroud)
这是用于表单提交的实体:
<?php
namespace Vendor\FinanceBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\HttpFoundation\File\File;
/**
* @ORM\Entity
* @ORM\Entity(repositoryClass="Vendor\FinanceBundle\Repository\RRFPreScreenRepository")
* @ORM\Table(name="vendor_finance_rrf_pre_screen") …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 API 平台中实现自定义或过滤器。但由于某种原因,它没有加载。在我的配置下面找到。
这是我的过滤器:
<?php
namespace AppBundle\Filter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\AbstractFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Common\Annotations\AnnotationReader;
final class SearchFilter extends AbstractFilter
{
protected function filterProperty(string $property, $value, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null)
{
if ($property === 'search') {
$this->logger->info('Search for: ' . $value);
} else {
return;
}
$reader = new AnnotationReader();
$annotation = $reader->getClassAnnotation(new \ReflectionClass(new $resourceClass), \AppBundle\Filter\SearchAnnotation::class);
if (!$annotation) {
throw new \HttpInvalidParamException('No Search implemented.');
}
$parameterName = $queryNameGenerator->generateParameterName($property);
$search = [];
$mappedJoins = []; …Run Code Online (Sandbox Code Playgroud) 不知何故的学说不允许我比较两个较低的字符串值:变量的值和用户的名字。
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('d')
->from('MyBundle:User', 'd')
->where('LOWER(d.firstName) LIKE :fName')
->setParameter('fName', strtolower('%'.$fName.'%'));
$result = $qb->getQuery()->execute();
Run Code Online (Sandbox Code Playgroud)
仅当$ fName具有大写字符串(即“ Rob”)时,它才会返回“ Robert”和“ Robby”之类的结果。但是我想要的是即使$ fName拼写为小写('rob'),这些结果也应该出现。似乎d.firstNames没有降低。为什么会这样呢?
当我在终端中输入以下行时,没有任何反应:
php composer.phar update
Run Code Online (Sandbox Code Playgroud)
安装或任何其他选项相同。
可能是什么问题呢?我在 CentOS 上工作。谢谢
我在Symfony中收到以下错误消息:
Parse error: syntax error, unexpected '\' (T_NS_SEPARATOR), expecting identifier (T_STRING)
Run Code Online (Sandbox Code Playgroud)
例如,当我执行DoctrineMigrations时,这一行出现了吗?
我怎么调试这个?
这是完整的痕迹:
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Parse error: syntax error, unexpected '\' (T_NS_SEPARATOR), expecting identifier (T_STRING) in /Library/WebServer/Documents/hrd_3/var/cache/dev/appDevDebugProjectContainer.php:7087
Stack trace:
#0 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(117): Symfony\Component\HttpKernel\Kernel->initializeContainer()
#1 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68): Symfony\Component\HttpKernel\Kernel->boot()
#2 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(117): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /Library/WebServer/Documents/hrd_3/bin/console(29): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput))
in /Library/WebServer/Documents/hrd_3/var/cache/dev/appDevDebugProjectContainer.php on line 7087
Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Parse error: syntax error, unexpected '\' (T_NS_SEPARATOR), expecting identifier (T_STRING) in /Library/WebServer/Documents/hrd_3/var/cache/dev/appDevDebugProjectContainer.php:7087
Stack trace:
#0 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(117): Symfony\Component\HttpKernel\Kernel->initializeContainer()
#1 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68): Symfony\Component\HttpKernel\Kernel->boot()
#2 /Library/WebServer/Documents/hrd_3/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(117): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在生产中运行Symfony4应用程序,我收到以下错误:
Uncaught TypeError: Return value of Symfony\\Component\\Dotenv\\Dotenv::populate()
must be an instance of Symfony\\Component\\Dotenv\\void,
none returned in /var/www/html/vendor/symfony/dotenv/Dotenv.php:95
Stack trace:
#0 /var/www/html/vendor/symfony/dotenv/Dotenv.php(57):
Symfony\\Component\\Dotenv\\Dotenv->populate(Array)
#1 /var/www/html/public/index.php(12):
Symfony\\Component\\Dotenv\\Dotenv->load('/var/www/html/s...')
#2 {main}
thrown in /var/www/html/vendor/symfony/dotenv/Dotenv.php on line 95
Run Code Online (Sandbox Code Playgroud)
在本地,该应用程序运行正常.一旦它转移到生产,它就会破裂.
知道为什么会这样吗?
我想用Pyglet制作一个改变每一帧的网格.因此我需要经常更新顶点,我认为VBO将是最快的方式(如果我错了,请纠正我).以下是Points的示例.这是正确的做法吗?我读到glBindBuffer调用的数量应该被最小化,但是在这里它被称为每帧.GL_DYNAMIC_DRAW也已启用,但如果我将其更改为GL_STATIC_DRAW,它仍然有效.这让我想知道这是否是一个快速计算的正确设置
import pyglet
import numpy as np
from pyglet.gl import *
from ctypes import pointer, sizeof
vbo_id = GLuint()
glGenBuffers(1, pointer(vbo_id))
window = pyglet.window.Window(width=800, height=800)
glClearColor(0.2, 0.4, 0.5, 1.0)
glEnableClientState(GL_VERTEX_ARRAY)
c = 0
def update(dt):
global c
c+=1
data = (GLfloat*4)(*[500+c, 100+c,300+c,200+c])
glBindBuffer(GL_ARRAY_BUFFER, vbo_id)
glBufferData(GL_ARRAY_BUFFER, sizeof(data), 0, GL_DYNAMIC_DRAW)
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(data), data)
pyglet.clock.schedule(update)
glPointSize(10)
@window.event
def on_draw():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(0, 0, 0)
glVertexPointer(2, GL_FLOAT, 0, 0)
glDrawArrays(GL_POINTS, 0, 2)
pyglet.app.run()
Run Code Online (Sandbox Code Playgroud) 有没有办法在KNP菜单包中呈现自定义属性,如下所示:
$menu = $factory->createItem(Role::ROLE_PROGRAM_EVENT_PLANNER, array(
'route' => 'show_form_events',
'attributes' => array('class' => 'menu pe_planner'),
'extra' => array(
'content' => 'my custom content'
)
));
Run Code Online (Sandbox Code Playgroud)
我通过在a-tag之后添加一个额外的div来覆盖linkElement.在那个div我想提供额外的内容
{% block linkElement %}
{% import _self as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>{{ block('label') }}</a>
{% if item.hasChildren == false %}
<div class="custom">{{ item.getExtra('content') }}</div>
{% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud) 对于我的公司,我想将存储在数据库中的表单中的值映射到第三方公司的形式(我们日常工作的一部分).
我们的表格在site1.com上,第三方公司的表格在site2.com上,并在site1.com上的iframe中显示.
我完全控制site1.com,没有通过site2.com
显然,使用jQuery,由于同源策略,映射将不起作用.
我想,既然我可以使用"inspect element"手动操作DOM树,那么浏览器插件可能会起作用.但是直到现在我还没有能够使这个工作,因为我再次遇到同源策略.
有没有其他方法让这个工作?我是否需要更进一步并为我的Mac创建一个可可应用程序?