Почему setRelation () не работает должным образом в Laravel 5.7? - PullRequest
0 голосов
/ 03 июня 2019

Итак, у меня есть следующий код:

if (!$this->relationLoaded('feed')) {
    $this->getFeed();
}

, затем в методе getFeed () у меня есть следующее:

public function getFeed() {
    $feed = Cache::get(RSSFeed::CACHE_KEY . $this->id_RSSFeed, function() {
        $feed = $this->feed;

        Cache::put(RSSFeed::CACHE_KEY . $this->id_RSSFeed, $feed, now()->addHours(24));

        return $feed;
    });

    // not empty
    echo "<pre>";
    print_r($feed);

    $this->setRelation('feed', $feed);

    // empty
    print_r($this->feed);
    exit;

    return $this->feed;
}

У меня также есть отношение feed (), определенное какследующее:

public function feed() {
    return $this->belongsTo("App\RSSFeed", "id_RSSFeed");
}

Теперь по какой-то причине, когда я пытаюсь сделать print_r() для $this->feed после установки отношения на $this, он возвращает ноль или пустой.Что я здесь не так делаю?Я использую неправильный метод, чтобы сделать это?Будем благодарны за любую помощь, которую вы, ребята, можете дать.

edit: Я забыл, что в начале у меня было следующее:

class RSSFeed extends Model {
    public $feed;
}

Так что это переписывало отношение.Я добавлю ответ в ближайшее время, если это испортит других людей.

1 Ответ

0 голосов
/ 03 июня 2019

так как опубликовано в вопросе в редактировании, это был виновник:

class RSSFeed extends Model {
    public $feed;
}

как только я удалил public $feed;, он начал работать правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...