从Symfony 2.8开始,您只能将FQCN传递给控制器createForm方法.所以,我的问题是,当我在控制器中创建表单时,如何将构造参数传递给表单类构造?
<Symfony 2.8我可以做(MyController.php):
$this->createForm(new MyForm($arg1, $arg2));
Run Code Online (Sandbox Code Playgroud)
Symfony 2.8+我只能做(MyController.php):
$this->createForm(MyForm::class);
Run Code Online (Sandbox Code Playgroud)
那么如何传递构造参数呢?这些参数在控制器操作中提供,因此我不能使用"Forms as services"方法...
文件说明:
class Cart
{
// ...
/**
* @OneToOne(targetEntity="Customer", inversedBy="cart")
* @JoinColumn(name="customer_id", referencedColumnName="id")
*/
private $customer;
// ...
}
Run Code Online (Sandbox Code Playgroud)
这个注释代表了这样的sql:
JOIN Customer c ON c.id = cart.customer_id
Run Code Online (Sandbox Code Playgroud)
问题是我需要在那里添加额外的比较,例如:
JOIN Customer c ON c.id = cart.customer_id AND c.anotherField = <constant>
Run Code Online (Sandbox Code Playgroud)
有什么解决方案吗?
UPD:
我现在需要的真正的附加条件是 <const> BETWEEN c.f1 AND c.f2