标签: symfony4

symfony:如何为不同的环境设置配置参数文件?

如何为每个环境设置不同的配置参数文件?

目前,参数parameters.yml都用于环境devprod环境,但我需要不同的参数才能在prod中部署我的应用程序.

symfony symfony-2.8 symfony-3.4 symfony4

7
推荐指数
1
解决办法
2409
查看次数

Symfony4:Doctrine2工作但PHPUnit测试中没有连接(内核启动)

Symfony4中的奇怪问题:Doctrine有效,我可以使用验证模式,创建数据库等php bin/console doctrine:schema:create.但我的PHPUnit测试没有连接.通过运行./bin/phpunit我得到SQLSTATE[HY000] [2002] No such file or directory例外.

我按照文档中有关启动内核的步骤进行操作:http: //symfony.com/doc/current/testing/doctrine.html

我的代码:

class PersistingResultTest extends KernelTestCase
{
    protected $em;

    protected function setUp()
    {
        $kernel = self::bootKernel();

        $this->em = $kernel->getContainer()
            ->get('doctrine')
            ->getManager();
    }

    public function testPersistingLogFile()
    {
        // Just a simple schema command to test connection
        $tool = new SchemaTool($this->em);
        $tool->createSchema($this->em->getMetadataFactory()->getAllMetadata());
    }


   protected function tearDown()
    {
        parent::tearDown();

        $this->em->close();
        $this->em = null; // avoid memory leaks
    }
}
Run Code Online (Sandbox Code Playgroud)

谁知道为什么会这样?一个bug?

编辑:

显然.env文件读取不正确.我将DATABASE_URL …

php symfony doctrine-orm symfony4

7
推荐指数
1
解决办法
601
查看次数

Symfony 4,Postgres - `参数"client_encoding"的值无效:"utf8mb4"`运行doctrine命令

问题

我有一个新的设置postgres 10.5symfony 4应用程序运行php 7.1.但是当我尝试运行迁移时.我一直收到以下Invalid value for parameter "client_encoding": "utf8mb4"错误. 在此输入图像描述

重现步骤

  1. .env文件上修改DSN以根据您的设置更正值.我是DATABASE_URL="pgsql://postgres:password@db:5432/a_db".
  2. 使用创建一个实体(Any会这样做) php bin/console make:entity
  3. 制作迁移文件 php bin/console make:migration

预期结果

我应该收到Success消息.

所以我的问题是

我遵循文档时在这里错过了什么?

php postgresql symfony symfony4

7
推荐指数
1
解决办法
4287
查看次数

php bin/console make:包内的实体

我正在使用 symfony 4

我已经为可重用应用程序构建了一个捆绑包,并且我想继续使用 php cli 命令 make:entity。

我如何将它用于我的特定捆绑包的文件夹目标?

谢谢!

php bundle command-line-interface symfony4

6
推荐指数
1
解决办法
2635
查看次数

没有为 Doctrine\ORM\PersistentCollection 类定义实体管理器

我正在使用Symfony 4.1SonataAdminBundle 3.36.

\n\n

当我设置关系字段调用标签时出现此ModelType::class错误ManyToMany

\n\n
\n

没有为类 Doctrine\\ORM\\PersistentCollection 定义实体管理器

\n
\n\n

我也无法使用sonata_type_modelor sonata_type_model_list

\n\n

src/Admin/CategoryAdmin.php

\n\n
namespace App\\Admin;\n\nuse Sonata\\AdminBundle\\Admin\\AbstractAdmin;\nuse Sonata\\AdminBundle\\Datagrid\\ListMapper;\nuse Sonata\\AdminBundle\\Datagrid\\DatagridMapper;\nuse Sonata\\AdminBundle\\Form\\FormMapper;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\EmailType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\TextareaType;\nuse Symfony\\Component\\Form\\Extension\\Core\\Type\\CheckboxType;\n\nuse Symfony\\Bridge\\Doctrine\\Form\\Type\\EntityType;\nuse Sonata\\AdminBundle\\Form\\Type\\ModelType;\nuse Sonata\\AdminBundle\\Form\\Type\\ModelListType;\n\n\nclass FactureAdmin extends AbstractAdmin\n{\n    protected $datagridValues = [\n\n        // display the first page (default = 1)\n        '_page' => 1,\n\n        // reverse order (default = 'ASC')\n        '_sort_order' => 'DESC',\n\n        // name of the ordered field (default = the model's id field, …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm sonata-admin symfony4

6
推荐指数
1
解决办法
2537
查看次数

Docker 中的 MySQL 返回“服务器请求客户端未知的身份验证方法”

我为 Symfony 4 项目使用 Docker Web 堆栈。MySQL 配置是:

mysql:
    image: mysql
    container_name: sf4_mysql
    volumes:
        - .docker/data/db:/var/lib/mysql
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: ***
        MYSQL_USER: ***
        MYSQL_PASSWORD: ***
Run Code Online (Sandbox Code Playgroud)

从 Docker Hub 拉取的镜像是 MySQL 8,当我尝试使用它创建数据库时,doctrine:database:create我收到了以下消息:

2018-09-17T11:53:51+00:00 [错误] 运行命令“doctrine:database:create”时抛出错误。消息:“驱动程序中发生异常:SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法”

在 AbstractMySQLDriver.php 第 126 行:

驱动程序中发生异常:SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

在 PDOConnection.php 第 50 行:

SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

在 PDOConnection.php 第 46 行:

SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

在 PDOConnection.php 第 46 行:

PDO::__construct():服务器请求客户端未知的身份验证方法 [caching_sha2_password]

mysql docker symfony4

6
推荐指数
2
解决办法
5959
查看次数

Symfony Doctrine ORM CLI 字体/颜色不起作用?

我一直在网上寻找如何解决这个问题,但没有成功。事实上,我已经遇到这个问题一年多了,只是忽略了它。现在我在 Symfony 4.1 项目中做了更多 ORM 学说的工作,我想知道是否有人知道如何修复我的 Windows 10 机器上的字体/颜色?

命令行工具: * Powershell - 未正确显示颜色 * 命令提示符 - 未正确显示颜色 * Git CMD - 未正确显示颜色

这是我创建或编辑实体时 CLI 的样子:

E:\wamp\www\GasCruiter>php bin/console make:entity



 Class name of the entity to create or update (e.g. GentleChef):
 > UserConfirmation
U[K7[30;47mser[39;49m8s[K7[30;47mer[39;49m8e[K7[30;47mr[39;49m8r[K78C[K7[30;47monfirmation[39;49m8o[K7[30;47mnfirmation[39;49m8n[K7[30;47mfirmation[39;49m8f[K7[30;47mirmation[39;49m8i[K7[30;47mrmation[39;49m8r[K7[30;47mmation[39;49m8m[K7[30;47mation[39;49m8a[K7[30;47mtion[39;49m8t[K7[30;47mion[39;49m8i[K7[30;47mon[39;49m8o[K7[30;47mn[39;49m8n[K78

 Your entity already exists! So let's add some new fields!

 [32mNew property name (press [39m[32m<return>[39m[32m to stop adding fields)[39m:
 > date

 [32mField type (enter [39m[33m?[39m[32m to see all types)[39m [[33mstring[39m]:
 > datetime
d[K7[30;47matetime[39;49m8a[K7[30;47mtetime[39;49m8t[K7[30;47metime[39;49m8e[K7[30;47mtime[39;49m8t[K7[30;47mime[39;49m8i[K7[30;47mme[39;49m8m[K7[30;47me[39;49m8e[K78

 [32mCan this field be …
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm symfony4

6
推荐指数
1
解决办法
1298
查看次数

之前执行的迁移不是注册迁移

我正在尝试使用这些命令更新我的数据库

php bin/console make:migration

此返回成功

但是当我尝试

php bin/console doctrine:migrations:migrate

我有这个错误:

警告!您在数据库中有 5 个先前执行的迁移 >> 未注册的迁移。

>> 2018-12-17 10:42:04 (20181217104204)
>> 2018-12-17 13:19:24 (20181217131924)
>> 2018-12-17 13:40:58 (20181217134058)
>> 2018-12-18 10:41:38 (20181218104138)
>> 2018-12-18 13:15:49 (20181218131549)
Run Code Online (Sandbox Code Playgroud)

事实是,此处列出的数据库不在我的数据库中的迁移表中,它们也不在我的 Migrations 文件夹中。

如何删除那些错误的迁移?谢谢。

symfony symfony4

6
推荐指数
1
解决办法
8057
查看次数

驱动程序中发生异常:SQLSTATE[HY000] [1045] 用户“db_user”@“localhost”访问被拒绝(使用密码:YES)

我按照此文档 将原则添加到我的 symfony 项目(v4.2)中。但是,当安装主义时,它不会将此行添加到我的项目中(在我的 .env 文件中,如文档中提到的):

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"

所以我像这样手动添加它:

DATABASE_URL="mysql://root@127.0.0.1:3306/db_school"

并使用此命令创建数据库:

php bin/console 学说:数据库:创建

它给了我这个错误:

在 AbstractMySQLDriver.php 第 93 行:驱动程序中发生异常:SQLSTATE[HY000] [1045] 用户 'db_user'@'localhost' 的访问被拒绝(使用密码:YES)

在 PDOConnection.php 第 31 行中: SQLSTATE[HY000] [1045] 用户 'db_user'@'localhost' 的访问被拒绝(使用密码:YES)
在 PDOConnection.php 第 27 行中: SQLSTATE[HY000] [1045] 用户 ' 的访问被拒绝db_user'@'localhost'(使用密码:YES)

即使我更改了用户名和密码,它仍然无法识别。知道为什么它不起作用吗?我会很感激的。

symfony doctrine-orm symfony4

6
推荐指数
2
解决办法
4万
查看次数

从 Symfony 日志记录中排除基于通道和级别的日志条目

我当前的配置:

monolog:
    handlers:
        target_main:
            type:         fingers_crossed
            action_level: debug
            handler: file_log
            channels: ['!security' '!request']
        file_log:
            type: rotating_file
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
            max_files: 2
Run Code Online (Sandbox Code Playgroud)

现在请求通道已完全排除在 file_log 处理程序之外。我需要仅从通道请求中排除 action_level - 调试,而不是完全请求通道。是否可以使用 symfony monolog 配置,如果可以,如何实现?

php symfony monolog symfony4

6
推荐指数
0
解决办法
669
查看次数