最佳答案
我正在使用 Symfony 4.3.8,但是我找不到任何关于这些反对意见的信息:
不支持用户: 不支持创建原则 ORM 映射 UnderscoreNamingStrategy 而不支持使用原则 ORM 3.0中的原则 ORM 映射 UnderscoreNamingStrategy 并将删除原则 ORM 3.0中的原则 ORM 映射 UnderscoreNamingStrategy 而不支持使用原则 ORM 映射 UnderscoreNamingStrategy。
不支持在不知道数字的情况下创建 Doctrine ORM Mapping UnderscoreNamingStrategy,并将在 Doctrine ORM 3.0中删除。
我在 Stacktrace 里搜索了一下,发现了这个:
class UnderscoreNamingStrategy implements NamingStrategy
{
private const DEFAULT_PATTERN = '/(?<=[a-z])([A-Z])/';
private const NUMBER_AWARE_PATTERN = '/(?<=[a-z0-9])([A-Z])/';
/**
* Underscore naming strategy construct.
*
* @param int $case CASE_LOWER | CASE_UPPER
*/
public function __construct($case = CASE_LOWER, bool $numberAware = false)
{
if (! $numberAware) {
@trigger_error(
'Creating ' . self::class . ' without making it number aware is deprecated and will be removed in Doctrine ORM 3.0.',
E_USER_DEPRECATED
);
}
$this->case = $case;
$this->pattern = $numberAware ? self::NUMBER_AWARE_PATTERN : self::DEFAULT_PATTERN;
}
在这个类中,构造函数总是在没有参数的情况下调用,所以 $numberAware 总是 false。
这个类是在文件中调用的,它是由 Symfony 依赖注入自动生成的,所以我不能“编辑”它..。
我想也许是在教义里:
doctrine:
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
但我没有找到任何选择,让数字意识到: (