私はそのように定義されているアクセサがあります。今Laravelアクセサにパラメータを追加
public function getNameAttribute($name)
{
return trans($name);
}
、私は私の翻訳にパラメータを追加したいと思いますので、私はそのようなことがしたい:
をpublic function getNameAttribute($name)
{
return trans($name, ['age' => $age]);
}
可能ですか?どのようにアクセサーを定義し、どのようにparamを呼び出す必要がありますか?
EDIT 1:ここに私のモデルは属性を示します。
protected $fillable = [
'id',
'name',
'gender',
'isTeam',
'ageCategory',
'ageMin',
'ageMax',
'gradeCategory',
'gradeMin',
'gradeMax',
];
そして、ここでは、私は私のモデル内の$ age変数を取得する方法である:
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の2つのモデル属性で作成された文字列です。 –