问题标签 [symfony4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Symfony 将 Doctrine Manager 实例注入控制器方法参数
在 Controller 中,您可以使用以下内容定义更新操作:
自动注入非常方便,但是如何将 Doctrine Manager 实例注入到控制器动作中,如果不手动创建 Doctrine Manager 实例会更方便。如下所示:
而不是长编码:
production-environment - Symfony 4 部署不工作
我正在尝试在我的服务器上部署一个 symfony 4 项目,但是我在完成它的生产时遇到了问题(在本地它工作得很好)。
之前我在我的服务器上部署了很多 symfony 3 项目,所以我决定测试一个 Symfony 4。
这是我在日志中遇到的错误:
[Wed Dec 06 10:26:33.141952 2017] [:error] [pid 13485] [client 84.120.210.249:50394] PHP 致命错误:未捕获的 TypeError:Symfony\Component\Dotenv\Dotenv::populate() 的返回值必须是 Symfony\Component\Dotenv\void 的一个实例,在 /var/www/my_project/vendor/symfony/dotenv/Dotenv.php:95\n堆栈跟踪中没有返回:\n#0 /var/www/my_project/vendor/ symfony/dotenv/Dotenv.php(57): Symfony\Component\Dotenv\Dotenv->populate(Array)\n#1 /var/www/my_project/public/index.php(15): Symfony\Component\Dotenv\ Dotenv->load('/var/www/rodage...')\n#2 {main}\n 在第 95 行的 /var/www/my_project/vendor/symfony/dotenv/Dotenv.php 中抛出
这是我的 index.php(创建项目时获得的默认 index.php):
这就是我在 composer.json 中的内容:
这些是我尝试过的事情:
-缓存:清除
-作曲家更新
-apache重启
我认为这与环境变量有关,但不确定...
有什么建议么?
谢谢大家的时间!
symfony - Symfony 4,一种从现有数据库生成实体的方法?
使用 Symfony 3 及其控制台,我们可以通过命令“php bin/console dictionary:mapping:import”从已经存在的数据库中生成实体(非常有用!)。
从 symfony 4 开始,命令 "./bin/console dictionary:mapping:import" 需要一个包名,但 symfony 4 现在不能与包一起使用。
使用新版本的 symfony,有没有一种我没有看到的从现有数据库生成实体的方法(例如 mysql)?还是我必须等待新版本的教义才能拥有与 Symfony 4 兼容的“教义:映射:导入”?
我找到了一个(n)(丑陋的)解决方案。我部署了一个一次性的 symfony 3,我将 symfony 3 链接到我的数据库,并在捆绑中生成实体。然后我将生成的文件复制到 symfony 4。它很丑但它可以工作哈哈
php - Symfony - 无法转换属性路径启动日期的值:应为 \DateTimeInterface
我正在尝试添加价格包含发布日期的新产品。这导致标题中的错误。
产品.php
产品控制器.php
产品类型.php
ProductPriceUpdateType.php
PriceUpdate.php
堆栈跟踪
我看不出有什么问题,也不明白为什么需要 \DateTimeInterface。
php - Symfony 4 - 手动表单
我正在 Symfony 框架中创建我的第一个项目。我选择了4.0版本。我有一个关于创建表单的问题。
配置/routes.yaml
src/Entity/User.php
src/控制器/HomeController.php
模板/主页/index.html.twig
login()
控制器中的andregister()
方法应该是什么?我已经阅读了有关在 Symfony 中创建表单的信息,但我想使用手动完成的视图中的表单。
它应该看起来像这样吗?
doctrine-orm - Symfony 4 教义 yaml mappng
我使用 yaml 映射
当我尝试时php bin/console doctrine:generate:entities App --no-backup
,我得到了错误
找不到“App\Entity\User”的基本路径
教义.yaml:
示例 User.orm.yml:
symfony4 - Symfony4 中大型项目的代码分离最佳实践是什么?
流行框架第 4 版的发布标志着项目结构发生了重大变化。包括官方文档中关于代码捆绑的以下说明(http://symfony.com/doc/current/bundles.html):
在 Symfony 4.0 之前的版本中,建议使用包来组织您自己的应用程序代码。不再建议这样做,并且捆绑包只能用于在多个应用程序之间共享代码和功能。
在第 2 版和第 3 版中,捆绑包执行了两项主要任务。1)如果开发人员或他们不同项目中的一组开发人员使用了一个大的重复功能,则可以将其以单独的捆绑包中取出并从项目转移到项目中。这种使用的一个很好的例子是任何项目中的用户系统。它包括用户模型、角色模型、权限模型(可能还有其他模型)、实体控制器,以及用于登录应用程序、退出应用程序的控制器(安全策略可能同时不同)和视图模板。另一个很好的例子是管理面板,其基础是相同的。2) Symfony 从逻辑的角度来看,在不同的目录中采用了单独的功能,因此,通过捆绑来命名空间。例如,在我过去的一个项目中,我划分了空间:用户管理系统、应用游戏化(社交网络目标)、合作伙伴空间、地理环境(用于处理地图和通过 IP 定义城市)、支付交易环境。如下。
在我的下一个项目中,我不想使用 Symfony4 以外的任何东西来遵循框架的最佳实践来实现其新功能。如果官方文档不再坚持创建bundle,我该如何组织逻辑独立代码在不同区域的分离???如果模型的所有类都存储在同一个目录中,这会造成混乱并增加在大型项目结构中查找所需文件的时间。这同样适用于模板和其他一切。当我使用一个功能时,我只有这个功能的下拉目录。
现在 Symfony 是否鼓励您自行决定定义类、模板等的结构?
dependency-injection - Symfony 4.0 Translator 类未注入控制器
我在新的 symfony 4 中遇到了问题。
错误:控制器“App\Controller\DefaultController::index()”要求您为“$translator”参数提供一个值。参数可以为空并且没有提供空值,没有提供默认值,或者因为在此参数之后有一个非可选参数。
配置:service.yaml
翻译.yaml
composer-php - 使用作曲家安装 Symfony 4 失败
当我sudo composer create-project monolog/monolog Experience2
成功时:
但是当我尝试按照官方文档中的描述安装新的 Symfony 4 应用程序时:composer create-project symfony/skeleton Experience2
它失败了:
我知道composer显示的警告消息实际上是关于composer网站上的信息,根据我的理解,需要的配置只能在composer.json文件中完成? 由于安装没有成功(因此没有./Experience2/composer.json之类的文件)。
php - Symfony 4.0 不工作
直截了当:
- 我在 symfony 4.0 上创建了新项目:composer create-project symfony/skeleton sf4
- 欢迎页面正在运行
- 我想用https://symfony.com/doc/current/page_creation.html创建我的第一页,
我完全按照他们所说的做了:创建控制器和路由
- 欢迎页面将状态更改为:No route found for "GET /"
<-已解决
- 新页面路径找不到文件 - 错误 404
我究竟做错了什么?那是愚蠢的
~src/Controller/SecurityController.php
~config/routes.yaml
编辑:
主页有效 - 谢谢@Cerad