如何为每个环境设置不同的配置参数文件?
目前,参数parameters.yml都用于环境dev和prod环境,但我需要不同的参数才能在prod中部署我的应用程序.
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 …
问题
我有一个新的设置postgres 10.5和symfony 4应用程序运行php 7.1.但是当我尝试运行迁移时.我一直收到以下Invalid value for parameter "client_encoding": "utf8mb4"错误.

重现步骤
.env文件上修改DSN以根据您的设置更正值.我是DATABASE_URL="pgsql://postgres:password@db:5432/a_db".php bin/console make:entityphp bin/console make:migration预期结果
我应该收到Success消息.
所以我的问题是
我遵循文档时在这里错过了什么?
我正在使用 symfony 4
我已经为可重用应用程序构建了一个捆绑包,并且我想继续使用 php cli 命令 make:entity。
我如何将它用于我的特定捆绑包的文件夹目标?
谢谢!
我正在使用Symfony 4.1与SonataAdminBundle 3.36.
当我设置关系字段调用标签时出现此ModelType::class错误ManyToMany:
\n\n\n没有为类 Doctrine\\ORM\\PersistentCollection 定义实体管理器
\n
我也无法使用sonata_type_modelor sonata_type_model_list。
src/Admin/CategoryAdmin.php
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 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]
我一直在网上寻找如何解决这个问题,但没有成功。事实上,我已经遇到这个问题一年多了,只是忽略了它。现在我在 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 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 项目(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)
即使我更改了用户名和密码,它仍然无法识别。知道为什么它不起作用吗?我会很感激的。
我当前的配置:
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 配置,如果可以,如何实现?
symfony4 ×10
symfony ×8
php ×5
doctrine-orm ×4
bundle ×1
docker ×1
doctrine ×1
monolog ×1
mysql ×1
postgresql ×1
sonata-admin ×1
symfony-2.8 ×1
symfony-3.4 ×1