【问题标题】:hasOne relation on same model not working in laravel 5.6同一模型上的 hasOne 关系在 laravel 5.6 中不起作用
【发布时间】:2018-06-10 05:31:25
【问题描述】:

我想将模型 id 存储在同一个表中,其中不同的列 rel_id 与 id 列有关系, 但关系 hasOne 不起作用,显示此错误:

无法重新声明 App\Models\Employee:supervisor()

class Employee extends Model
{   
    function supervisor()
    {
        return $this->hasOne('App\Models\Employee','id', 'supervisor_id');
    }
}

【问题讨论】:

  • 向我们展示您的模型。
  • 我认为他的意思是向我们展示了对失败函数进行编码的模型——失败消息与 RelFunction() 对话,而不是 supervisor()。您很可能在模型或相关模型中有两个 RelFunction。对此进行搜索,如果是这种情况,请告诉我们。

标签: laravel foreign-keys laravel-5.6


【解决方案1】:

如果没有更多信息和更完整的模型,确实很难判断,但最可能的两个原因是:

  1. 您的模型上有两个相同的方法 (RelFunction()),或者另一个具有相同命名空间的模型。在您的代码(首先是您的模型,然后是全局)中搜索 RelFunction。
  2. 您有命名空间问题。您可能已经复制了一个模型,或者将它移动到了一个新文件夹,或者只是错误地命名了它。根据模型的详细情况,这可能会无意中导致错误消息。

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2015-04-02
    • 2019-04-18
    • 2020-04-20
    • 2023-02-16
    • 2019-03-25
    • 2016-05-01
    • 2017-01-24
    • 2018-12-01
    相关资源
    最近更新 更多