亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

?ndern Sie die Paginierungswerte in der Laravel-Modellmethode, indem Sie Anforderungen abfangen
P粉295728625
P粉295728625 2024-03-22 14:16:16
0
2
1014

In meiner Laravel-Anwendung habe ich einen API-Einstiegspunkt, an dem ich erste Daten für meine Anwendung sammle, z. B. erhalte ich paginierte Ergebnisse für Beitr?ge, Tags, Benutzer ...

Ich verwende paginate:15 für alle Datens?tze, aber für Benutzer m?chte ich paginate:30 verwenden, weil ich in meinen Anforderungsparametern so etwas habe:

page=1&paginate=15

Gibt es eine M?glichkeit, es in meiner Controller-Methode auf 30 zu ?ndern?

Anf?nglicher Controller

$users = $this->userService->getUsersPaginated($request);
$users = $this->vuePaginate($users);

In meinem Benutzermodell:

public function getUsersPaginated($request)
    {
        
        $users = User::
        paginate($request['paginate']);
        


        return $users;
    }
P粉295728625
P粉295728625

Antworte allen(1)
P粉127901279

根據(jù)用戶類型,評(píng)估是否可以在前端處理分頁(yè)大小。

無(wú)論如何,如果您想在后端處理它,您可以找到一個(gè)條件來(lái)設(shè)置分頁(yè)大小。
例如:

if ($currentUser->role == 'final-user')  // 或類似的條件
   $perPage = max (30, $request['paginate']);
else
   $perPage = $request['paginate'];

$users = User::paginate($perPage);

我還建議您為分頁(yè)設(shè)置一個(gè)最小值和最大值,以避免來(lái)自前端的錯(cuò)誤值引起問(wèn)題(想象一下如果您得到一個(gè)像1,000,000或-1這樣的值)

const DEFAULT_RESULTS_PER_PAGE = 15;
const FINAL_USER_RESULTS_PER_PAGE = 30;
const MAX_RESULTS_PER_PAGE = 100;

/* ... */

public function getUsersPaginated($request)
{
    $perPage = min (max ($request['paginate'] ?: self::DEFAULT_RESULTS_PER_PAGE, 1), self::MAX_RESULTS_PER_PAGE);

    if (/* condition */)
        $perPage = max (self::FINAL_USER_RESULTS_PER_PAGE, $perPage);

    $users = User::paginate($perPage);

    /* ... */

還要注意,默認(rèn)的分頁(yè)器請(qǐng)求變量是per_page

  • Antwort 回復(fù)信息
    P粉092737458 Autor 2024-03-27 11:28:55
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage