【问题标题】:How can I summarize form extensions in Symfony 4?如何在 Symfony 4 中总结表单扩展?
【发布时间】:2019-01-13 13:33:38
【问题描述】:

这真的有必要逐项使用所有这些类型(甚至更多..)吗?总结它们的形式难道没有一种“用途”吗?

use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;

【问题讨论】:

  • 所有这些都是从Symfony\Component\Form\Extension\Core\Type\FormType扩展而来的
  • 如果只是关于 use 语句,您可以改为仅使用父命名空间(直到 Type),然后从该点开始在代码中引用特定类型,例如:Type\BirtdayType .
  • @yceruto 我测试过只使用Symfony\Component\Form\Extension\Core\Type\FormType,但随后我收到所有类型的错误消息:Could not load type "App\Controller\TextType": class does not exist
  • @dbrumann 不,我只是在寻找像 use Symfony\Component\Form\Extension\Core\Type\AllTypes 这样的一行代码

标签: forms symfony types components


【解决方案1】:

不可能批量包含命名空间 - 可能的解决方案是:

分组声明 - PHP 7+

use Symfony\Component\Form\Extension\Core\Type\{TextType,ButtonType,EmailType,HiddenType,PasswordType,TextareaType,SubmitType,NumberType,DateType,MoneyType,BirthdayType};

使用父命名空间

use Symfony\Component\Form\Extension\Core\Type;

$type = new Type\HiddenType();

@dbrumann 建议

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多