gpt4 book ai didi

php - 使用 Laravel Doctrine 的 InvalidFieldNameException

转载 作者:可可西里 更新时间:2023-11-01 00:58:16 25 4
gpt4 key购买 nike

我正在将我的 Zend Framework 1 应用程序转换为 Laravel 应用程序。我使用的是 Doctrine,所以我将模型移到了 Laravel。我正在使用 laravel-doctrine

字段是用 camelCase 编写的,当通过 doctrine 创建数据库时,它们也是用 camelCase 创建的,如下所示:

/**
* @ORM\Entity (repositoryClass="Repositories\Customer")
* @ORM\Table(name="customers")
* @ORM\HasLifecycleCallbacks
*/
class Customer
{
/**
* @ORM\Id @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/** @ORM\Column(type="string", length=255, nullable=true) */
protected $firstName;

/** @ORM\Column(type="string", length=255, nullable=true) */
protected $lastName;

/** @ORM\Column(type="string", length=255, nullable=true) */
protected $companyName;

当我执行 EntityManager::find('App\Entities\Customer', 1); 时,我收到此错误:

An exception occurred while executing 'SELECT t0.id AS id_1, t0.firstName AS firstName_2, t0.lastName AS lastName_3, t0.company_name AS company_name_4, t0.email AS email_5, t0.phone_number AS phone_number_6, t0.type AS type_7, t0.created AS created_8, t0.updated AS updated_9, t0.jobsource_id AS jobsource_id_10 FROM customers t0 WHERE t0.id = ?' with params 1: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.company_name' in 'field list'

寻找下划线是有原因的吗?我有办法改变它吗?

我正在使用 PHP 7.0.1

最佳答案

laraveldoctrine.org 支持自定义命名策略:

Doctrine\ORM\Mapping\DefaultNamingStrategy 可能就是您正在寻找的那个。

在 doctrine.php 配置文件中:(在您将其发布到您的项目之后)

'managers'                  => [
'default' => [
'naming_strategy' => 'Doctrine\ORM\Mapping\DefaultNamingStrategy',
'dev' => env('APP_DEBUG'),
'meta' => env('DOCTRINE_METADATA', 'annotations'),
'connection' => env('DB_CONNECTION', 'mysql'),
'paths' => [
base_path('app')
],
....
]
]

如果您想要一个自定义的,请根据以下内容实现命名策略:http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/namingstrategy.html

关于php - 使用 Laravel Doctrine 的 InvalidFieldNameException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35029003/

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