我尝试从Symfony 4项目中的Symfony控制台命令处理异常。
这是我在services.yaml中的事件监听器:
kernel.event_listener:
class: App\Application\EventListener\ExceptionListener
arguments:
- '@logger'
- '@jms_serializer'
- '@translator.default'
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onConsoleException }
Run Code Online (Sandbox Code Playgroud)
这种治疗的标签是什么?
当我在项目中执行命令行时,我尝试忽略两个实体,doctrine:schema:update --force其写法如下:
/**
* @ORM\Entity(readOnly=true)
* @ORM\Table(name="view_tableau_de_bord")
*/
class ViewTableauDeBord
{
//...
}
Run Code Online (Sandbox Code Playgroud)
在我的doctrine.yaml配置文件中:
doctrine:
dbal:
default_connection: default
connections:
default:
url: '%env(resolve:DATABASE_URL)%'
driver: 'pdo_pgsql'
server_version: '12'
charset: utf8
schema_filter: ~^(?!view_)~
# ...
Run Code Online (Sandbox Code Playgroud)
当我的观点在 .Doctrine 中时,Doctrine 不断生成所有实体schema_filter。你对此有何解释?这是我第一次在项目中使用这个选项。
项目配置:
在我的虚拟机中的 Ubuntu 服务器上,此查询(请参阅实体代码后的方法)运行良好,但在我的在线服务器上,Doctrine 显示此错误:
[语法错误] 第 0 行,第 92 列:错误:预期的 Doctrine\ORM\Query\Lexer::T_WITH,得到 ','
这是 Profile 实体中的代码:
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Swagger\Annotations as SWG;
/**
* Description of Profile
*
* @ORM\Entity(repositoryClass="AppBundle\Repository\ProfileRepository")
* @SWG\Definition(@SWG\Xml(name="profile"))
*/
class Profile
{
/**
* @var int $id
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $lastName
*
* @ORM\Column(name="lastName", type="string", length=100, nullable=false)
* @Assert\NotBlank()
* @Assert\Type(type="string")
*/
private $lastName;
/**
* @var string …Run Code Online (Sandbox Code Playgroud) symfony ×3
doctrine ×2
php ×2
command-line ×1
doctrine-orm ×1
exception ×1
php-7 ×1
symfony4 ×1
symfony5 ×1