Как использовать OR внутри WHERE в запросе laravel

Я новичок в laravel, и мне нужна помощь по запросу в laravel

Мой индивидуальный запрос

$sql1 = "SELECT * FROM blogs
    WHERE
    ('$title'=''  OR title='$title')
    AND
    ('$body'='' OR body='$body')";

и я создаю запрос сборки laravel, но не знаю, как поставить OR внутри WHERE и поставить скобки

$posts =  Blog::where('title','LIKE',"%{$title}%")
                            ->Where('body', 'LIKE',"%{$body}%")
                            ->offset($start)
                            ->limit($limit)
                            ->orderBy($order,$dir)
                            ->get();
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
548
7

Ответы 7

Я думаю, или Где находится то, что вы ищете, и основываясь на пользовательском запросе, я думаю, вам понадобится = вместо like, если это не то, что вы собираетесь, я думаю, это будет что-то вроде:

->where('title', '=', $title)
->orWhere('title', '=', '');

Просто используйте orWhere()

$posts = Blog::where('title', $title)
             ->orWhere('title', $otherTitle)
             ->orderBy($order, $dir)
             ->get();

Надеюсь, это даст вам представление :)

$posts =  Blog::where(function ($query) use($title) {
                         $query->where('title', 'LIKE', "%{$title}%")
                               ->orWhere('title', '=', '$title');
              })
            ->orWhere(function ($query) use($body) {
                       $query->where('body', 'LIKE', "%{$body}%")
                             ->orWhere('body', '=', '$body');
                             })
             ->offset($start)
             ->limit($limit)
             ->orderBy($order,$dir)
             ->get();

Не проверено...

Хороший ответ, но вы скучаете по use ($title) и use ($body)

Wahyu Kristianto 25.06.2018 16:28

Спасибо @WahyuKristianto, Обновлено;)

Roland Allla 25.06.2018 16:35
$posts =  Blog::where(function($q) use($title){
              $q->where('title','')->orWhere('title',$title);
         })->where(function($q) use($body){
            $q->where('body','')->orWhere('body',$body);
         })->offset($start)
         ->limit($limit)
         ->orderBy($order,$dir)
         ->get();

Ваш запрос должен быть таким:

$result = Blog::where(function($query) use ($title, $body){
      $query->where(
              ["title" => $title, "body"=>$body]
          )->orWhere(
              ["title"=>"", "body"=>""]
          ); 
})
->offset($start)
->limit($limit)
->orderBy($order,$dir)
->get();

Используйте код ->orWhere().

Примечание: Вы также можете использовать магические методы

->whereAgeOrPhone(18, 123456789);

используйте orWhere ()

$blogs= DB::table('Blog')
                ->where('title', 'LIKE', '%{$title}%')
                ->orWhere('body','LIKE', '%{$body}%')
                ->offset($start)
                ->limit($limit)
                ->orderBy($order,$dir)
                ->get();

Для получения дополнительных запросов вы можете посетите здесь

Другие вопросы по теме