我正在使用装有新鲜laravel 5.4的Vagrant.运行auth后,我运行了迁移以迁移MySQL表.所有这些过程都成功但当我尝试登录或注册以测试系统时,我收到错误:
SQLSTATE [HY000] [2002]连接被拒绝.
但我的数据库工作正常,因为我已经能够迁移表.可能的解决方案是什么?检查附图(我正在使用Ubuntu 16.04)

我是 Symfony 的新手。我正在学习一门课程,在创建了一个新的 Symfony 项目后,他们使用这个控制台来创建新的包php bin/console generate:bundle
但是当我在控制台中执行此操作,然后使用 时php bin/console server:run,它会引发错误:
PHP 致命错误:未捕获的 Symfony\Component\Debug\Exception\ClassNotFoundException:尝试从命名空间“HomeBundle”加载类“HomeBundle”。
您是否忘记了另一个命名空间的“use”语句?
在 C:\xampp\htdocs\symfony_CRUD\app\AppKernel.php:19
经过大量时间寻找解决方案后,我几乎刚刚找到“更改 composer.json”解决方案,但它已经在 Symfony 3.4 中修复了 composer.json,所以我不知道下一步该怎么做。
这是我的 composer.json 开头
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
"autoload-dev": {
"psr-4": { "Tests\\": "tests/" },
"files": [ "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" ]
},
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": …Run Code Online (Sandbox Code Playgroud) 我的注释是:
* @OA\RequestBody(
* required=true,
* @OA\JsonContent(
* @OA\Schema (
* type="object",
* @OA\Property(property="status", required=true, description="EventStatus", type="string"),
* @OA\Property(property="comment", required=false, description="Change Status Comment", type="string"),
* example={
* "status": "test status",
* "comment": "test comment"
* }
* )
* )
* )
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个“示例”键,但没有成功。

我有一张名为'匹配'的足球比赛桌.在该表中有一个字段'kickoff',它是匹配开始时的datetime-column.使用以下代码,我可以获得表格中的所有匹配项.
$matches = $em->createQueryBuilder()
->select('m')
->from('FootballWcBundle:Matches', 'm')
->addOrderBy('m.kickoff', 'ASC')
->getQuery()
->getResult();
return $this->render('FootballWcBundle:Page:matches.html.twig', array(
'matches' => $matches
));
Run Code Online (Sandbox Code Playgroud)
现在我想显示按日期分组的屏幕上的匹配项.像这样:
二〇一四年十二月十二日
MATCH1
MATCH2
14-12-2014
MATCH3
match4
match5
有没有办法让Twig知道如何通过启动列进行分组,还是有另一种方法可以做到这一点?
我只想在PHP 5.6的服务器上安装我的Symfony 3.2应用程序,并composer install告诉我twig/twig v2.0.0 requires php ^7.0 -> your PHP version (5.6.22) does not satisfy that requirement.
如何更改我的应用中使用的树枝版本?据我所知,Symfony使用twig-bundle(https://packagist.org/packages/symfony/twig-bundle).
我是否需要在较低版本(哪一个?)中添加symfony/twig-bundle,还是需要将twig/twig v1.31.0添加到我的composer.json require部分?
我的composer.json:
{
"name": "...",
"license": "proprietary",
"type": "project",
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"require": {
"php": ">=5.5.9",
"symfony/symfony": "3.2.*",
"twig/twig": "1.31.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^3.0",
"symfony/polyfill-apcu": "^1.0",
"sensio/distribution-bundle": …Run Code Online (Sandbox Code Playgroud) 我有一个 HTML 表单,输入字段已经居中,但它们没有垂直对齐。

我想让所有标签和输入垂直对齐,以便所有标签都在同一条垂直线上,并且所有输入都在同一条垂直线上。
到目前为止,我所拥有的只是 div 中的字段:
<div class="container" align="center">
Run Code Online (Sandbox Code Playgroud) 这就是我创建数组的方式fields:
public function index($slug, Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$page = $this->getDoctrine()->getRepository(Pages::class)->findOneBy(['slug'=>$slug]);
$fields = (array) $page;
return $this->render('mypage.html.twig', ['page' => $page, 'fields' => $fields]);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
array:3 [?
"\x00App\Entity\Pages\x00id" => 3
"\x00App\Entity\Pages\x00name" => "cat"
"\x00App\Entity\Pages\x00color" => ""
]
Run Code Online (Sandbox Code Playgroud)
但我实际上需要这个结果:
array:3 [?
"id" => 3
"name" => "cat"
"color" => ""
]
Run Code Online (Sandbox Code Playgroud)
根据我所做的更改的建议:
public function index($slug, Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$page = $this->getDoctrine()->getManager()->getRepository(Pages::class)->findOneBy(['slug'=>$slug]);
$fields = get_object_vars($page);
return $this->render('mypage.html.twig', ['page' => $page, 'fields' => $fields]);
}
Run Code Online (Sandbox Code Playgroud)
但这会输出一个空数组。
TL;DR:如何向转换添加自定义约束(即安全投票者)?
我的应用程序需要一些工作流管理系统,所以我想尝试 Symfony 的新Workflow Component。让我们以拉取请求工作流程为例。
在此示例中,仅描述状态及其转换。但是如果我想向此工作流程添加其他约束怎么办?我可以想象一些限制:
虽然在这种情况下您可以使用事件,但我认为这不是处理它的最佳方法,因为事件是在$workflow->apply(). 我想事先知道是否允许用户更改状态,以便我可以隐藏或禁用该按钮。(不是这样的)。
LexikWorkflowBundle通过向步骤(转换)添加角色部分解决了这个问题。切换到这个捆绑包可能是一个好主意,但我想弄清楚如何在没有这个捆绑包的情况下解决这个问题。
添加自定义实体约束(“超过 1 年的 PR 不能重新打开”)和安全约束(“只有管理员可以接受 PR ”,也许通过使用 Symfony 的安全投票者)到转换的最佳方法是什么?
更新: 澄清一下:我想向我的工作流程添加权限控制,但这并不一定意味着我想将其紧密耦合到工作流程组件。我想坚持良好的做法,因此给定的解决方案应该尊重单一责任原则。
我正在做一个简单的 MVC Web 应用程序,它应该对 SQL 数据库执行不同的查询。我Symfony 4用作框架,主要是为了利用其路由功能。
我知道我可以从 Doctrine 中获益,但我想知道:如果有人想使用PDODoctrine来代替它,是否有可能这样做以及应该如何实施。我应该使用 PDO 创建一个可以传递给另一个类的数据库类吗?
我使用 Symfony 4 和 Doctrine,并且使用 VichUploader 来管理我的图像。
我创建一个实体图像,当我使用这个实体添加新图像时,它就像一个魅力,但当我想用我的控制器删除它时:
public function delete(Image $image):Response
{
$em = $this->getDoctrine()->getEntityManager();
$em->remove($image);
$em->flush();
return new RedirectResponse($this->generateUrl('image-index'));
}
Run Code Online (Sandbox Code Playgroud)
我收到最奇怪的错误:
Expected argument of type "string", "NULL" given at property path "fileName".
Run Code Online (Sandbox Code Playgroud)
在我的图像实体中,`文件名是这样的:
Expected argument of type "string", "NULL" given at property path "fileName".
Run Code Online (Sandbox Code Playgroud)
处理编辑实体时会出现相同的行为。你看到我做错了什么吗?
我已经重新安装了 Ubuntu 16.04,并且在从 git 中提取了我的 symfony 3.4 项目后,它会加载但没有 CSS 和 JS。我认为是文件夹和文件权限的问题。
symfony ×9
php ×6
twig ×2
arrays ×1
bundle ×1
composer-php ×1
css ×1
doctrine-orm ×1
forms ×1
group-by ×1
html ×1
laravel ×1
laravel-5.4 ×1
mysql ×1
object ×1
oop ×1
pdo ×1
permissions ×1
rest ×1
workflow ×1