加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

php – 使用错误的表别名生成查询的Doctrine

发布时间:2020-12-11 23:51:53 所属栏目:MySql教程 来源:网络整理
导读:我正在尝试使用doctrine / orm 2.5.1做一个简单的 > find(). 查询非常简单: $this-get('order_repository')-find(10); 但这会产生一个复杂的查询: SELECT s0_.number AS number_0,s0_.state AS state_1,s0_.completed_at AS completed_at_2,s0_.items_tota

我正在尝试使用doctrine / orm 2.5.1做一个简单的 – > find().

查询非常简单:

$this->get('order_repository')->find(10);

但这会产生一个复杂的查询:

SELECT s0_.number AS number_0,s0_.state AS state_1,s0_.completed_at AS completed_at_2,s0_.items_total AS items_total_3,s0_.adjustments_total AS adjustments_total_4,s0_.total AS total_5,s0_.created_at AS created_at_6,s0_.updated_at AS updated_at_7,s0_.deleted_at AS deleted_at_8,s0_.id AS id_9,s0_.expires_at AS expires_at_10,s1_.currency AS currency_11,s1_.checkout_state AS checkout_state_12,s1_.payment_state AS payment_state_13,s1_.shipping_state AS shipping_state_14,s2_.quantity AS quantity_15,s2_.unit_price AS unit_price_16,s2_.adjustments_total AS adjustments_total_17,s2_.total AS total_18,s2_.is_immutable AS is_immutable_19,s2_.id AS id_20,s1_.channel_id AS channel_id_21,s1_.shipping_address_id AS shipping_address_id_22,s1_.billing_address_id AS billing_address_id_23,s1_.customer_id AS customer_id_24,s1_.offer_id AS offer_id_25,s2_.order_id AS order_id_26,s2_.variant_id AS variant_id_27 FROM sylius_order s1_ LEFT JOIN sylius_order_item s2_ ON s1_.id = s2_.order_id WHERE (s1_.id = 10) AND (s1_.deleted_at IS NULL)’

出现以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘s0_.number’ in ‘field list’

我可以看到s0_没有在查询的任何地方定义.这些别名是从教义自动的,我只是不明白它为什么使用s0_然后在FROM上跳过s1_,它有s0 _上提到的列.* 最佳答案 我刚刚花了一个小时来解决同样的问题;你可能犯了和我一样的拼写错误.

对我来说问题出在.yml模式定义中.在我定义表格之间关系的部分中,我有这个目标实体:

targetEntity:mlEmailNotif

代替

targetEntity:MlEmailNotif

因此小写的’m’使doctrine为新表创建一个新的别名(php比较区分大小写).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读