Laravel лимит результатов запроса параметров - PullRequest
0 голосов
/ 21 января 2020

У меня есть запрос, который фильтрует фильмы на основе ввода пользователя, мне нужно добавить limit в качестве параметра запроса, чтобы он ограничивал количество возвращаемых фильмов, как мне добавить это, я Я новичок в написании красноречивых запросов.

query

$films = Film
::when($request->input('first'), function ($query, $first) {
    $query->whereHas('options', function ($query) use ($first) {
        $query->where('first', $main);
    });
})
->when($request->input('second'), function ($query, $second) {
    $query->whereHas('options', function ($query) use ($second) {
        $query->where('second', $second );
    });
})
->when($request->input('age'), function ($query, $age) {
    $query->whereHas('ageRatings', function ($query) use ($age) {
        $query->where('age', $age);
    });
})
->when($request->input('country'), function ($query, $country) {
    $query->whereHas('locations', function ($query) use ($country) {
        $query->where('country', $country);
    });
})
->when($request->input('city'), function ($query, $city) {
    $query->whereHas('locations', function ($query) use ($city) {
        $query->where('city', $city);
    });
})
->get();

Ответы [ 2 ]

1 голос
/ 21 января 2020

Вы можете использовать $query->limit(5) или $query->take(5).

Если вы хотите пропустить первые 5 результатов, используйте $query->skip(5)

Если вы хотите добавить нумерацию страниц, вы можете использовать $query->paginate(5)

См. Подробнее: Query Builder

0 голосов
/ 21 января 2020

Вы можете использовать оба этих метода

метод Limit

$limit = 10;
$films = Film
::when($request->input('first'), function ($query, $first) {
    $query->whereHas('options', function ($query) use ($first) {
        $query->where('first', $first);
    });
})
->when($request->input('second'), function ($query, $second) {
    $query->whereHas(‘options', function ($query) use ($second) {
        $query->where('second', $second);
    });
})
->when($request->input('age'), function ($query, $age) {
    $query->whereHas('ageRatings', function ($query) use ($age) {
        $query->where('age', $age);
    });
})
->when($request->input('country'), function ($query, $country) {
    $query->whereHas('locations', function ($query) use ($country) {
        $query->where('country', $country);
    });
})
->when($request->input('city'), function ($query, $city) {
    $query->whereHas('locations', function ($query) use ($city) {
        $query->where('city', $city);
    });
})
->limit($limit)
->get();

Take метод

$limit = 10;
    $films = Film
    ::when($request->input('first'), function ($query, $first) {
        $query->whereHas('options', function ($query) use ($first) {
            $query->where('first', $first);
        });
    })
    ->when($request->input('second'), function ($query, $second) {
        $query->whereHas('options', function ($query) use ($second) {
            $query->where('second', $second);
        });
    })
    ->when($request->input('age'), function ($query, $age) {
        $query->whereHas('ageRatings', function ($query) use ($age) {
            $query->where('age', $age);
        });
    })
    ->when($request->input('country'), function ($query, $country) {
        $query->whereHas('locations', function ($query) use ($country) {
            $query->where('country', $country);
        });
    })
    ->when($request->input('city'), function ($query, $city) {
        $query->whereHas('locations', function ($query) use ($city) {
            $query->where('city', $city);
        });
    })
    ->take($limit)
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...