laravel:模型中的函数必须返回一个关系实例

时间:2017-12-09 09:57:45

标签: laravel laravel-5.5

我尝试在laravel

上为模型构建路径

我在我的模型中创建了一个函数:

public function path()
{
    return App\Helper\GeneralController::getURL($this);
}

dd(App\Helper\GeneralController::getURL($this))测试我得到了正确的答案。 (输出是一个URL)

但是通过调用$article->path查看我收到此错误:

App\Article:: path must return a relationship instance.

有什么问题?

5 个答案:

答案 0 :(得分:45)

你需要打电话给它:

$article->path()

执行$article->path时,您尝试使用您不具备的雄辩关系。

答案 1 :(得分:4)

你正在呼唤一段感情。

 {
  "upcoming": [
    {
      "id": "17",
      "date": "2018/04/23 13:25",
      "title": "Team A"
    },
    {
      "id": "20",
      "date": "2018/04/23 13:25",
      "title": "Team B"
    },
    {
      "id": "10",
      "date": "2019/06/16 21:45",
      "title": "Team c"
    }
  ]
}

要调用方法,请使用'()',如此,

$article->path

答案 2 :(得分:4)

当我忘记在模型中建立关联之前写 return 时,我遇到了这个错误!
立即查看!

答案 3 :(得分:3)

path()是您需要作为方法

调用的方法而非对象元素
$article->path();

答案 4 :(得分:2)

我知道这已经得到答复和接受。但是,如果OP确实希望使用属性访问器而不是方法,请使用Laravel的“ get {属性名称} Attribute”语法创建自定义属性。

这是此特定情况的外观:

public function getPathAttribute()
{
    return App\Helper\GeneralController::getURL($this);
}