2015-11-23 7 views
1

В обычном PHP У меня есть SQL-запросLaravel красноречивым запрос orWhere

$q = 'shojib'; or $q = '01913711...'; or $q = 'House 23...'; 

select * from member where LoginName like '%$q%' or mobile like '%$q%' or ConnectionAdderss like '%$q%' order by LoginName LIMIT 10; 

я хочу написать этот запрос в Laravel. Пожалуйста, помогите мне.

я использую SoftDeletingTrait в Laravel Модель член

Member::where('zone', 'like', '%'.$key.'%') 
      ->orWhere('login_name', 'like', '%'.$key.'%') 
      ->orWhere('mobile', 'like', '%'.$key.'%') 
      ->orWhere('name', 'like', '%'.$key.'%') 
      ->orderBy('login_name') 
      ->take('100') 
      ->get(); 

Но он будет возвращать все данные из базы данных с deleted_at не равно нулю;

он должен возвращать только те данные, у которых deleted_at равно null;

+0

Ваш запрос должен возвращать только элементы, которые НЕ бен удалены. Чтобы вернуть удаленные элементы, вы должны использовать 'onlyTrashed' или' withTrashed'. – djt

+0

возвращает все удаленные данные и не удаляет данные обоим. Но он должен возвращать только удаленные данные –

ответ

1

Вы должны написать запрос, как показано ниже

Member::onlyTrashed()->where('zone', 'like', '%'.$key.'%') 
     ->orWhere('login_name', 'like', '%'.$key.'%') 
     ->orWhere('mobile', 'like', '%'.$key.'%') 
     ->orWhere('name', 'like', '%'.$key.'%') 
     ->orderBy('login_name') 
     ->take('100') 
     ->get(); 
0

После определенных времен я нашел решение

Это должно быть

$members = Member::where(function($query) use ($key) 
     { 
      $query->where('zone', 'like', '%'.$key.'%') 
        ->orWhere('login_name', 'like', '%'.$key.'%') 
        ->orWhere('contact_number', 'like', '%'.$key.'%') 
        ->orWhere('sms_comn', 'like', '%'.$key.'%') 
        ->orWhere('email', 'like', '%'.$key.'%') 
        ->orWhere('name', 'like', '%'.$key.'%'); 
     }) 
     ->take('100') 
     ->orderBy('login_name', 'ASC') 
     ->get(); 
Смежные вопросы