Как я могу найти запись, используя часть строкового поля в Laravel / Eloquent? - PullRequest
6 голосов
/ 01 октября 2019

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

Мой текущий код, который возвращает запись только после того, как пользовательвведено полное имя:

public function getStudent($name) {
    $std = Student::where('first_name', $name)->get();
    return $std;
}

Спасибо

Ответы [ 5 ]

7 голосов
/ 01 октября 2019

Вы должны использовать «лайк», чтобы получить часть имени студента

$std = Student::where('first_name','like', '%' . $name. '%')->get();
2 голосов
/ 01 октября 2019

Используйте оператор Like. Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце.

$std = Student::where('first_name', 'like', '%' . $name . '%')->get();

Вы можете посетить здесь для получения дополнительной информации

2 голосов
/ 01 октября 2019

Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце.

В сочетании с LIKE * 1006 часто используются два подстановочных знака* оператор:

% - знак процента представляет собой ноль, один или несколько символов

_ - подчеркивание представляет один символ

Находит любые значения, которыеиметь "или" в любой позиции

$students = Student::where('first_name', 'LIKE', '%' . $name. '%')->get();

Вы также можете сделать это - whereLike

$students = Student::whereLike('first_name',$name)->get(); 
2 голосов
/ 01 октября 2019

Вы должны использовать подстановочный знак LIKE

$std = Student::where('first_name','like', '%'.$name.'%')->get();
1 голос
/ 01 октября 2019

Используйте оператор Like для SQL, чтобы проверить строку в записи. см .: https://www.w3schools.com/sql/sql_like.asp

Или используйте Laravel DB или Eloquent as,

public function getStudent($name) {
    $std = Student::where('first_name','LIKE' ,'%'.$name.'%')->get();//Laravel Eloquent
    $std = DB::table('student')->where('first_name','LIKE' ,'%'.$name.'%')->get();//DB table method
    $std = DB::select("select * from student where first_name LIKE %".$name."%");//DB SELECT method
    return $std;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...