【问题标题】:Why Eloquent changes column name?为什么 Eloquent 更改列名?
【发布时间】:2020-08-30 02:46:21
【问题描述】:

我的 book 表的主键称为 ISBN。

但是当我尝试使用 ISBN 更新其他列时,我收到以下错误:

我可以通过更改 eloquent 查询来修复它,但我想知道为什么会出现这个错误。

提前致谢!

【问题讨论】:

  • 您能分享一下您的Book 课程吗?
  • 如果您还没有写,请在您的BookModel 中写下这一行。 protected $primaryKey = 'ISBN';
  • 另一点是 Laravel 使用驼峰命名法意味着当你用大写字母写一个函数或 id 像 ISBN 时,laravel 会假设它是 i_s_b_n

标签: mysql laravel eloquent


【解决方案1】:

当模型转换为数组 (toArray()) 或 json (toJson()) 时,Laravel 会自动将关系名称从 camelCase 转换为 snake_case。

为了避免这种变化,在你的模型中写下这一行:

public static $snakeAttributes = false;

见:

https://stackoverflow.com/a/44794070/10573560

【讨论】:

  • 它不起作用。我仍然有同样的错误。我试着写下你给我的那行和模型中的主键。
  • 请写下你的问题中出现错误的查询
  • 抱歉来晚了,经过长时间的研究,很明显是laravel的约定,所以调整一下需要一些努力,
  • 你必须让你自己的模型类,就像在这个答案中:stackoverflow.com/a/33710995/10573560
猜你喜欢
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
相关资源
最近更新 更多