#php #laravel #laravel-5 #backend #illuminate
#php #laravel #laravel-5 #серверная часть #осветить
Вопрос:
Мне нужно удалить разбивку на страницы и оставить все на одной странице, но таким образом, я делаю это, только генерируя ОШИБКУ. Интересно, почему фрагмент прокомментированного кода не работает для удаления разбивки на страницы.
if ($minParam || $maxParam) {
$products = Product::whereHas('sizes', function ($query) use ($minParam, $maxParam) {
if ($minParam amp;amp; $maxParam) {
$query->whereBetween('max_capacity', [$minParam, $maxParam]);
} elseif ($minParam) {
$query->where('max_capacity', '>=', $minParam);
} else {
$query->where('max_capacity', '<=', $maxParam);
}
})
->whereHas('solutions', function ($query) use ($solution_id) {
$query->whereIn('solution_id', $solution_id);
})
->where('active', 1)
->orderBy('position', 'ASC')
->get();
//->paginate(16);
} else {
$products = Product::whereHas('solutions', function ($query) use ($solution_id) {
$query->whereIn('solution_id', $solution_id);
})
->where('active', 1)
->orderBy('position', 'ASC')
->get();
//->paginate(16);
}
return view('solutions.show')->with(compact('solutions', 'solution', 'products', 'ranges'));
}
}
Ошибка после замены на get ()
Метод ErrorException (E_ERROR) IlluminateDatabaseEloquentCollection::links не существует. (Вид: /app/server/resources/views/solutions/show.blade.php ) Метод предыдущих исключений IlluminateDatabaseEloquentCollection::links не существует.
Комментарии:
1. Что
bug
вы имеете в виду? Вы все еще используете->paginate()
so разбиение на страницы следует ожидать.2. Именно мне нужно сделать разбивку на страницы, но просто убрать ее и вставить get () не работает.
3. Вам действительно нужна разбивка на страницы или не нужна разбивка на страницы? Вы все еще не сказали нам, какое сообщение об ошибке вы получаете. Это, вероятно, помогло бы.
4. Какую ошибку вы получаете? Что
)-> if ($minParam || $maxParam)
предполагается делать?5.
Collection::links
наshow.blade.php
<— В вашемshow
представлении все еще используются ссылки на разбивку по страницам. Найдите это и выньте его. Проблема не в коде, который вы здесь показываете.
Ответ №1:
попробуйте изменить ->paginate(16)
на ->get()
во всем коде следующим образом:
whereHas('sizes', function($query) use($minParam, $maxParam) {
if($minParam amp;amp; $maxParam) {
$query->whereBetween('max_capacity', [$minParam, $maxParam]);
} elseif($minParam) {
$query->where('max_capacity', '>=', $minParam);
} else {
$query->where('max_capacity', '<=', $maxParam);
}
})->
if ($minParam || $maxParam) {
$products = Product::whereHas('sizes', function ($query) use ($minParam, $maxParam) {
if ($minParam amp;amp; $maxParam) {
$query->whereBetween('max_capacity', [$minParam, $maxParam]);
} elseif ($minParam) {
$query->where('max_capacity', '>=', $minParam);
} else {
$query->where('max_capacity', '<=', $maxParam);
}
})
->whereHas('solutions', function ($query) use ($solution_id) {
$query->whereIn('solution_id', $solution_id);
})
->where('active', 1)
->orderBy('position', 'ASC')
->get();
} else {
$products = Product::whereHas('solutions', function ($query) use ($solution_id) {
$query->whereIn('solution_id', $solution_id);
})
->where('active', 1)
->orderBy('position', 'ASC')
->get();
/*$products = Product::whereHas('solutions', function ($query) use ($solution_id) {
$query->whereIn('solution_id', $solution_id);
})
->where('active', 1)
->orderBy('position', 'ASC');*/
return view('solutions.show')->with(compact('solutions', 'solution', 'products', 'ranges'));
}
Комментарии:
1. Я изменил -> paginate (16) на -> get () по всему коду, но ошибка сохраняется. Не размещайте элементы на одной странице.
2. @iLuucasD отредактируйте свой вопрос и покажите нам ошибку, которую вы получаете.