Функция забудьте () вернуть вызов неопределённого метода в Laravel - PullRequest
0 голосов
/ 05 ноября 2018

Когда я пытаюсь использовать метод forget() для удаления элемента из коллекции, у меня появляется ошибка:

вызов неопределенного метода Осветить \ Database \ Красноречивых \ Отношения \ HasManyThrough :: забыл ()

Моя модель City.php

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class City extends Model
{
    public function rooms(){
      return $this->hasManyThrough('App\Room','App\Object');
    }
}

Мой метод, который содержит forget()

public function getSearchResults($request){
    $request->flash();
    if($request->input('city')!=null){
      $result = $this->fR->getSearchResults($request->input('city'));
      if($result){

        foreach($result->rooms as $k=>$room)
        {
          if($request->input('room_size') > 0)
          {
            if($request->input('room_size') != $room->room_size)
            {
              $result->rooms()->forget($k);
            }
          }
        }

        return $result;
      }
    }
    return false;
  }

Что я могу сделать, чтобы это исправить? Спасибо за помощь

1 Ответ

0 голосов
/ 05 ноября 2018

Вы должны изменить свой код ниже и после очистки кеша.

public function getSearchResults($request){
    $request->flash();
    if($request->input('city')!=null){
      $result = $this->fR->getSearchResults($request->input('city'));
      if($result){

        foreach($result->rooms as $k=>$room)
        {
          if($request->input('room_size') > 0)
          {
            if($request->input('room_size') != $room->room_size)
            {
              $result->rooms->forget($k);
            }
          }
        }

        return $result;
      }
    }
    return false;
  }

и затем выполните команду ниже

php artisan cache:clear
Artisan::call('cache:clear');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...