Самый простой способ, я думаю.Надежда поможет вам
Для меня это плохая идея разбить одно слово (полное имя) на три, потому что, если, если есть два слова в его имени, то проблема будет существовать, так как вы хотите только трислова (имя, отчество и фамилия).
Но если вы действительно хотите продолжить, вот код для этого:
$student = DB::table('student')
->select(
'student.name',
DB::raw("SUBSTRING_INDEX(student.name, ' ', 1) AS Firstname"),
DB::raw("SUBSTRING_INDEX(SUBSTRING_INDEX(student.name, ' ', 2),' ',-1) AS Middlename"),
DB::raw("SUBSTRING_INDEX(SUBSTRING_INDEX(student.name, ' ', 3),' ',-1) AS Lastname")
)
->get();
Я предполагаю, что вы используете, или это пробел ('')который объединяет три слова (имя, отчество и фамилия)
Примечание: примеры выходных данных:
1. Джон Ghost Pon
Имя = "Джон", Middlename =" Призрак ", Фамилия =" Пон "
2. Жениться на Энн Смит Ингрэм
Имя =" Жениться ", Middlename = "Anne", Фамилия = "Smith"
SUBSTRING_INDEX Функция возвращает подстроку строки передуказанное количество разделителей встречается:
Больше примеров
Пожалуйста, дайте мне знать, если все еще не работает.