无法访问 属性 个模型查询结果,共 eloquent 个

Unable to access property of eloquent model query result

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

在我的 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);
}

以下returns一个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

知道为什么会这样吗?

您可以像这样访问关系

$review->barterReviewFeedback->id

因为你们的关系是barterReviewFeedback而不是barter_review_feedback