как ограничить количество данных, в которых есть запрос laravel - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть такой запрос

$data = City::with('hotel')->orwherehas('hotel', function ($query) use ($user_input) {
    //here i want to limit this result to 5
    $query->where('name', 'LIKE', '%' . $user_input . '%')->take(5);
    //                $query->take(5); i have tried this too

})->orWhere('name', 'LIKE', '%' . $user_input . '%')->get();

внутри предложения whereHas, у меня есть запрос, который я хочу ограничить до 5, теперь я попытался limit, take, но не повезлопосле этого where ничего не работает, я не знаю почему

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Вы можете передать свой запрос методу построения запросов ->with():

$data = City::with(['hotel' => function($query) use ($user_input) {
    $query->where('name', 'LIKE', '%' . $user_input . '%')->limit(5);
}])
->where('name', 'LIKE', '%' . $user_input . '%')
->get();

Это позволит получить все отели, связанные с городом, в которые введен пользователь, где город содержит данные, введенные пользователем.

Обратите внимание, что ->orWhere() здесь не используется.

0 голосов
/ 30 сентября 2019

Попробуйте

$data = City::with('hotel')->orwherehas('hotel', function ($query) use ($user_input) {
    //here i want to limit this result to 5
    $query->where('name', 'LIKE', '%' . $user_input . '%')->limit(5);


})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...