У меня есть поле имени в таблице пользователей. Я сохраняю полное имя в одном поле сначала с именем, а затем с фамилией.
Что я хочу сделать, так это изменить порядок, чтобы сначала появлялась фамилия, а затем имя, когда я вызываю $user->nameRev, и orderBy по новому имени в laravel.
Я уже использую $user->name во многих местах, поэтому не могу это изменить, поэтому я хочу, чтобы $user->nameRev изменил имя и использовал его в запросах orderBy.
Как мне этого добиться?
ну, введенное имя, как предполагается, будет сначала именем, а затем фамилией. Поэтому я хочу отменить его, когда вызываю $ user-> nameRev
Если ваше единственное значение поля - John Smith, все в порядке, вы взорвите пробелом и переверните. А если значение поля Jon Paul Jones - как его обрабатывать?
поле имени будет содержать только два слова: имя и фамилия
Итак, создайте функцию nameRev() в своей пользовательской модели и используйте ее.
Аналогичная проблема здесь stackoverflow.com/questions/17232714/…
Возможный дубликат Добавить настраиваемый атрибут в модель Laravel / Eloquent при загрузке?
Самый чистый способ - разбить поле вашего имени на first_name, middle_name и last_name, чтобы вам больше не приходилось писать грязный код. тогда вы сможете решить свою проблему с меньшими усилиями.






Надеюсь, это может вам помочь.
Public function reversName()
{
$user = Auth::user();
$str = $user->name;
list($first, $last) = (explode(" ",$str));
$nameRev = $last. ''. $first;
$user->nameRev = $nameRev;
$user->save() ;
// Or
DB::table(users)->where('user_name')->insert($nameRev);
...
}
Так как же решить, какая часть полного имени является первой и второй?