Использование Eloquent ORM в Laravel для выполнения поиска по базе данных с помощью LIKE
Я хочу использовать активное построение записей Eloquent для создания поискового запроса, но это будет похожий поиск. Я нашел User::find($term) или User::find(1), но это не генерирует подобное утверждение. Я не ищу прямого ответа, но если бы кто-то мог хотя бы дать мне направление, чтобы посмотреть, что было бы здорово!
5 ответов:
вы можете сделать поиск базы данных, используя как с этим синтаксисом:
Model::where('column', 'LIKE', '%value%')->get();
Если вам нужно часто использовать LIKE, вы можете немного упростить проблему. Пользовательский метод типа () может быть создан в модели, которая наследует Eloquent ORM:
public function scopeLike($query, $field, $value){ return $query->where($field, 'LIKE', "%$value%"); }затем вы можете использовать этот метод таким образом:
User::like('name', 'Tomas')->get();
FYI, список операторов (содержащий как и все остальные) в код:
/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php protected $operators = array( '=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like', 'between', 'ilike', '&', '|', '^', '<<', '>>', 'rlike', 'regexp', 'not regexp', );отказ от ответственности:
ответ Джоэла Ларсона верен. Получил мой голос.
Я надеюсь, что этот ответ прольет больше света на то, что доступно через красноречивый ORM (указывает людям в правильном направлении). Хотя ссылка на документацию будет далеко лучше, что ссылка оказалась недостижимой.
используйте двойные кавычки вместо одинарной кавычки, например:
where('customer.name', 'LIKE', "%$findcustomer%")Ниже приведен мой код:
public function searchCustomer($findcustomer) { $customer = DB::table('customer') ->where('customer.name', 'LIKE', "%$findcustomer%") ->orWhere('customer.phone', 'LIKE', "%$findcustomer%") ->get(); return View::make("your view here"); }
Если вам не нравятся двойные кавычки, как я, это будет работать для вас в одинарные кавычки:
$value = Input::get('q'); $books = Book::where('name', 'LIKE', '%' . $value . '%')->limit(25)->get(); return view('pages/search/index', compact('books'));
Comments