У меня есть аксессор, который определяется так:добавить параметр в Laravel аксессу
public function getNameAttribute($name)
{
return trans($name);
}
Теперь я хотел бы добавить параметры моего перевода, поэтому я хотел бы иметь что-то вроде этого:
public function getNameAttribute($name)
{
return trans($name, ['age' => $age]);
}
Возможно ли это? Как определить элемент доступа, и как я должен называть send param?
EDIT 1: Вот моя модель атрибуты:
protected $fillable = [
'id',
'name',
'gender',
'isTeam',
'ageCategory',
'ageMin',
'ageMax',
'gradeCategory',
'gradeMin',
'gradeMax',
];
А вот как я получаю $ возрастную переменную внутри моей модели:
public function getAgeString()
{
$ageCategoryText = '';
$ageCategories = [
0 => trans('core.no_age'),
1 => trans('core.children'),
2 => trans('core.students'),
3 => trans('core.adults'),
4 => trans('core.masters'),
5 => trans('core.custom')
];
if ($this->ageCategory != 0) {
if ($this->ageCategory == 5) {
$ageCategoryText = ' - ' . trans('core.age') . ' : ';
if ($this->ageMin != 0 && $this->ageMax != 0) {
if ($this->ageMin == $this->ageMax) {
$ageCategoryText .= $this->ageMax . ' ' . trans('core.years');
} else {
$ageCategoryText .= $this->ageMin . ' - ' . $this->ageMax . ' ' . trans('core.years');
}
} else if ($this->ageMin == 0 && $this->ageMax != 0) {
$ageCategoryText .= ' < ' . $this->ageMax . ' ' . trans('core.years');
} else if ($this->ageMin != 0 && $this->ageMax == 0) {
$ageCategoryText .= ' > ' . $this->ageMin . ' ' . trans('core.years');
} else {
$ageCategoryText = '';
}
} else {
$ageCategoryText = $ageCategories[$this->ageCategory];
}
}
return $ageCategoryText;
}
$ Возраст - это атрибут вашей модели? –
@JoseRojas, иначе это не могло бы быть $ this-> age; –
mmm nop, это строка, построенная с двумя атрибутами модели: $ this-> ageMin, $ this-> ageMax, с функцией внутри модели –