Я использовал много функций из класса для использования в контроллере, и это нормальный способ предотвратить дублирование кода, но у меня есть функция, которая хранит расстояние в модели и использует коллекцию для разбивки на страницы, эта функция работает нормально и Возвращаем переменную $ store в контроллере, которая будет использоваться для разбиения на страницы, теперь мне нужно поместить ее в класс и вызвать ее из контроллера, к сожалению, она возвращает нулевое значение !!! как я могу исправить эту проблему? та же функция в контроллере работает нормально, но если я помещу ее в класс и вызову из контроллера, то будет возвращено значение null, помогите мне
Класс:
public function getStoresDistance($allstores)
{
$stores = collect([]);
foreach (session('storeinfo') as $storeInfo) {
$store = $allstores->find($storeInfo['id']);
if ($store) {
$store->distance = $storeInfo['distance'];
$stores[] = $store;
if (!Collection::hasMacro('paginate')) {
Collection::macro('paginate', function ($perPage = 25, $page = null, $options = []) {
$options['path'] = $options['path'] ?? request()->path();
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
return new LengthAwarePaginator(
$this->forPage($page, $perPage)->values(),
$this->count(),
$perPage,
$page,
$options
);
});
}
}
}
}
звонок с контроллера:
$allstores = Storeinfo::where('show', 'y')->get();
$findstores = Helper::getStoresDistance($allstores);