gpt4 book ai didi

php - 从 Symfony 表单中获取请求对象的最佳方式?

转载 作者:行者123 更新时间:2023-12-04 06:22:54 25 4
gpt4 key购买 nike

我使用 Symfony 和 Doctrine 为我的 CMS 生成表单。最近我一直在通过基于特定 URL 参数设置默认值来自定义它们。

例如,我有两个模型:PollQuestionPollChoice . PollChoicePollQuestion 有关系通过 poll_question_id field 。 PollChoice表单有一个下拉列表,列出了所有可用的 PollQuestion s 那 PollChoice可以附上。我也有两条路线:pollchoices/newpoll/:poll_id/choice/new .两条路线都显示 PollChoiceForm ,但是通过使用第二条路线,您会自动看到 PollQuestion 下拉菜单设置为 :poll_id网址参数。为此,我只需更改 PollChoiceForm 中下拉小部件的默认值即可。通过获取 :poll_id 的值来分类从请求对象。

我的问题有两个:

1) 我目前使用 sfContext::getInstance()->getRequest() 获取请求对象.我知道sfContext::getInstance()不赞成,但我无法找到另一种方法来获取它。还有其他方法吗?依赖注入(inject)似乎是一个不错的方法,但我不知道如何在不进行大量黑客攻击的情况下实现这一目标(我想避免)。

2) 我是否完全错误地根据 URL 参数更改表单的默认值?

最佳答案

每当我需要表单中的上下文时,我都是通过构造函数注入(inject)来完成的。

在行动中:

$this->form = new WhateverForm($whatever, array("context" => $this->getContext()));

形式:
$this->getOption("context");

关于php - 从 Symfony 表单中获取请求对象的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6345437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com