laravel为什么更改列名?

tks.tman

这是我收到的错误:

“ SQLSTATE [42S22]:[Microsoft] [SQL Server的ODBC驱动程序13] [SQL Server]无效的列名' user_user_id '。(SQL:插入[APPLICATIONS]([app_nm],[app_path],[app_readme_path],[ app_manual_path],[is_url],[user_user_id])值(TEST,uploads / 2240120001.jpg,uploads / 50225114.5-Data.pdf,uploads / 9275171481557696855-FixedDeposits.docx,0、1))”)

我有3个型号:

User.php

public $primaryKey = 'user_id';

public function posts()
{
    return $this->hasMany('App\Post');
}

public function roles()
{
    return $this->belongsToMany('App\Role','USER_ROLE','user_id','role_id');
}

Role.php

public $timestamps = false;
public $primaryKey = 'role_id';

public function users()
{
    return $this->belongsTo('App\User');
}

Post.php

public $timestamps = false;
protected $table = 'APPLICATIONS';
protected $primaryKey='app_id';

public function user()
{
    return $this->belongsTo('App\User');
}

Laravel将'user_'添加到'user_id'列名称中,导致上述错误。我已经检查了laravel 5.5 API,以查看是否需要提供其他参数,但事实并非如此。

什么会导致这种串联,我该如何解决?

杰森

您尚未在Post上正确定义用户关系。默认情况下,如果您没有显式添加相关表,Eloquent将从表名和主键名中推断出外键字段的名称。

在您的情况下,关系表名称为user,而该表的主键已定义为user_id因此,它假定您的APPLICATIONS表中的外键是user_user_id

为了解决这个问题,在关系中显式命名您的外部表ID和其他表ID:

public function user()
{
    return $this->belongsTo('App\User', 'user_id', 'user_id');
}

上面代码中的第二个参数将是您在APPLICATIONS表上的外键(因为您尚未明确说明其含义)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Mysql

为什么雄辩地更改列名?

来自分类Dev

在R中,为什么在创建新行时列名会更改?

来自分类Dev

当我尝试基于单个行更改所有列名称时,R为什么不更改列名称?

来自分类PHP

在Laravel中更改列名称

来自分类Dev

为什么我不能更改laravel项目的生产模式?

来自分类Dev

为什么我的列名需要引号?

来自分类Dev

为什么MySQL返回带引号的列名?

来自分类Dev

为什么 .loc 并不总是匹配列名?

来自分类Dev

为什么文件意外更改?

来自分类Dev

为什么xpath更改HTML?

来自分类Dev

DOMParser为什么更改空白?

来自分类Dev

为什么当前目录更改

来自分类Dev

为什么要在Forge laravel中重新安装存储库以更改环境中的数据?

来自分类Dev

为什么laravel中的store()更改存储中的文件名?

来自分类Dev

为什么 Laravel 不会在更新时更改数据?

来自分类Dev

更改Laravel 5.4密码加密和表列名

来自分类Dev

Laravel 5.2更改数据库列名称参考

来自分类Dev

为什么我无法在数据框中添加列名?

来自分类Dev

为什么`set_index`为列名创建索引标签?

来自分类Dev

将数据集与“数据框”合并,列名从 ; to.,为什么?

来自分类Java

为什么getGeneratedKeys()返回“ GENERATED_KEY”作为列名?

来自分类Dev

为什么crossover()和summarise_at()无法识别列名

来自分类Dev

Postgres:为什么我需要在 max() 中引用列名?

来自分类Dev

为什么显示“ SYSTEM.DATA.DATAROWVIEW”而不是列名?

来自分类Dev

为什么Knex不对结果行对象使用表列名?

来自分类Dev

为什么 pandas.concat() 将 (), 添加到列名

来自分类Dev

为什么“ ..”可以在字符向量变量中传递列名?

来自分类Dev

为什么 SQLite 列名使用大写字母?

来自分类Dev

为什么未在COUNT(列名)中计算空值

Related 相关文章

  1. 1

    为什么雄辩地更改列名?

  2. 2

    在R中,为什么在创建新行时列名会更改?

  3. 3

    当我尝试基于单个行更改所有列名称时,R为什么不更改列名称?

  4. 4

    在Laravel中更改列名称

  5. 5

    为什么我不能更改laravel项目的生产模式?

  6. 6

    为什么我的列名需要引号?

  7. 7

    为什么MySQL返回带引号的列名?

  8. 8

    为什么 .loc 并不总是匹配列名?

  9. 9

    为什么文件意外更改?

  10. 10

    为什么xpath更改HTML?

  11. 11

    DOMParser为什么更改空白?

  12. 12

    为什么当前目录更改

  13. 13

    为什么要在Forge laravel中重新安装存储库以更改环境中的数据?

  14. 14

    为什么laravel中的store()更改存储中的文件名?

  15. 15

    为什么 Laravel 不会在更新时更改数据?

  16. 16

    更改Laravel 5.4密码加密和表列名

  17. 17

    Laravel 5.2更改数据库列名称参考

  18. 18

    为什么我无法在数据框中添加列名?

  19. 19

    为什么`set_index`为列名创建索引标签?

  20. 20

    将数据集与“数据框”合并,列名从 ; to.,为什么?

  21. 21

    为什么getGeneratedKeys()返回“ GENERATED_KEY”作为列名?

  22. 22

    为什么crossover()和summarise_at()无法识别列名

  23. 23

    Postgres:为什么我需要在 max() 中引用列名?

  24. 24

    为什么显示“ SYSTEM.DATA.DATAROWVIEW”而不是列名?

  25. 25

    为什么Knex不对结果行对象使用表列名?

  26. 26

    为什么 pandas.concat() 将 (), 添加到列名

  27. 27

    为什么“ ..”可以在字符向量变量中传递列名?

  28. 28

    为什么 SQLite 列名使用大写字母?

  29. 29

    为什么未在COUNT(列名)中计算空值

热门标签

归档