无法访问雄辩的模型查询结果的属性

时间:2020-06-02 17:03:14

标签: laravel eloquent model eloquent-relationship

我遇到了我认为是常见的问题,但是我没有找到相关的解决方案。

在Laravel应用程序中,我在两个模型之间建立了关系:BarterReview和BarterReviewFeedback。

BarterReview.php

public function barterReviewFeedback () {
    return $this->hasOne(BarterReviewFeedback::class, 'barter_review_id');
}

BarterReviewFeedback.php

public function barterReview () {
    return $this->belongsTo(BarterReview::class);
}

以下代码返回一个BarterReview和相关的BarterReviewFeedback

$review = \App\BarterReview::with('barterReviewFeedback')->find(1);
return $review;

格式化后,结果($review)如下所示:

{
  "id": 1,
  "created_at": "2020-04-06T20:13:15.000000Z",
  "updated_at": "2020-04-06T20:13:15.000000Z",
  "rating": 5,
  "comment": "Five out of Five!",
  "user_id": 2,
  "barter_id": 1,
  "barter_review_feedback": {
    "id": 3,
    "created_at": "2020-06-02T16:34:41.000000Z",
    "updated_at": "2020-06-02T16:34:41.000000Z",
    "barter_review_id": 1,
    "user_id": 1,
    "content": "test"
  }
}

问题是我无法访问对象内部的“ barter_review_feedback”-$review->barter_review_feedback不显示任何内容。

此外,尝试直接访问$review->barter_review_feedback内部的属性,例如$review->barter_review_feedback->id会产生以下错误:Trying to get property 'id' of non-object

关于为什么会这样的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以访问这种关系

$review->barterReviewFeedback->id

因为您的关系是barterReviewFeedback而不是barter_review_feedback