Laravel Вызов неопределенного метода Query \ Builder

Firebase: как отобразить поток элементов в обратном порядке с лимитом для каждого запроса и индикатором кнопки «загрузить больше».

  • Это позволит получить последние 10 элементов список

FBRef.child ("childName") .limitToLast (loadMoreLimit) // loadMoreLimit = 10, например

  • Это будет последнее 10 элементов , Возьмите идентификатор последней записи в списке и сохраните для загрузки больше функциональности. Затем преобразуем коллекцию объектов в массив и создаем list.reverse ().
  • LOAD MORE Функциональность: следующий вызов будет делать две вещи: он получит следующую последовательность элементов списка на основе идентификатора ссылки из первого запроса и даст вам индикатор, если вам нужно отобразить «load» больше ".

this.FBRef .child ("childName") .endAt (null, lastThreadId) // Получить это с предыдущего шага .limitToLast (loadMoreLimit + 2)

  • Вам нужно будет удалить первый и последний элемент этой коллекции объектов. Первый элемент - ссылка для получения этого списка. Последний элемент является индикатором кнопки «Показать больше».
  • У меня есть куча другой логики, которая будет держать все в чистоте. Вам нужно будет добавить этот код только для большей функциональности загрузки.
      list = snapObjectAsArray;  // The list is an array from snapObject
      lastItemId = key; // get the first key of the list
    
      if (list.length < loadMoreLimit+1) {
        lastItemId = false; 
      }
      if (list.length > loadMoreLimit+1) {
        list.pop();
      }
      if (list.length > loadMoreLimit) {
        list.shift();
      }
      // Return the list.reverse() and lastItemId 
      // If lastItemId is an ID, it will be used for the next reference and a flag to show the "load more" button.
    }
    
0
задан user10076385 13 July 2018 в 13:49
поделиться

2 ответа

Вы должны использовать область и whereHas() :

public function scopeIsActiveShop($query) {
    return $query->whereHas('shop', function($query) {
        $query->where('status', 'active');
    });
}
0
ответ дан Jonas Staudenmeir 17 August 2018 в 12:41
поделиться
  • 1
    Это работа, как я полагаю, но у меня появилась новая ошибка. Попытка получить свойство не-объекта – user10076385 13 July 2018 в 14:08
  • 2
    $this->shop->status выглядит немного странно. Вы имеете в виду ->where('status', 'active')? – Jonas Staudenmeir 13 July 2018 в 14:09
  • 3
    магазин метод связи публичный магазин функций () {return $ this- & gt; принадлежит (Магазин :: класс); } – user10076385 13 July 2018 в 14:12
  • 4
    Понимаю. Я обновил свой ответ. – Jonas Staudenmeir 13 July 2018 в 14:16
  • 5
    Спасибо, это прекрасно работает. любая ссылка для изучения этой части !! – user10076385 13 July 2018 в 14:22

Попробуйте следующее:

$products = (new Product())->isActiveShop()->where('id',$rawArray)->get();
0
ответ дан J. Doe 17 August 2018 в 12:41
поделиться
  • 1
    Это работа, сфера применения лучше для решения, поскольку я думаю – user10076385 13 July 2018 в 14:09
Другие вопросы по тегам:

Похожие вопросы: