public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Paginator::resolveCurrentPage($pageName);
$perPage = $perPage ?: $this->model->getPerPage();
$results = ($total = $this->toBase()->getCountForPagination())
? $this->forPage($page, $perPage)->get($columns)
: $this->model->newCollection();
return $this->paginator($results, $total, $perPage, $page, [
'path' => Paginator::resolveCurrentPath(),
'pageName' => $pageName,
]);
}
protected function paginator($items, $total, $perPage, $currentPage, $options)
{
return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact(
'items', 'total', 'perPage', 'currentPage', 'options'
));
}
Почему так, и есть ли способы через laravel (ну или сырым sql запросом) произвести массовый апдейт, каждому айдишнику присваивая уникальное значение ? Или только вариант обновлять каждую строчку отдельным запросом ?
1. Потому что
дом поросенка должен быть крепостьюбаза последний бастион. Если там не должно содержаться дублей - она не должна допустить их появления - человек любит ошибаться, машина не очень.2. Потому что класть какие то вещи в базу может не только ваше приложение. А что нибудь еще в дальнейшем прикрученое сверху. Или ваше же приложение но с другого конца/контроллера - там импорт csv, тут менеджер херней страдает, а там стажер Вася решил посмотреть что да как - вы по всем этим хвостам Cache::lock будете расскидывать? А если кто нибудь еще другой напишет приложение которое будет работать с этой бд? Вы как локами будете обмениваться?
3. Внезапно ничего не мешает вам юзать returning - в случае со вставкой вернется, в случае с игнором нет. Можете поиграться