У меня проблема с переводами. Я новичок в них, так как никогда не пробовал добавлять переводы в проект. У меня есть эта модель для уведомлений в Laravel 5.4:
// /App/Notification.php
class Notification extends Model
{
const NO_STATUS = 0;
const SENT = 100;
const ACCEPTED = 200;
const ERROR = 300;
public static $statuses = [
self::NO_STATUS => 'No status',
self::SENT => 'Sent',
self::ACCEPTED => 'Accepted',
self::ERROR => 'Error',
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'from', 'to', 'status',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
//
];
/**
* The attributes that should be casted to native types.
*
* @var array
*/
protected $casts = [
'from' => 'integer',
'status' => 'integer',
];
public function isSent()
{
return $this->status == self::SENT;
}
public function isAccepted()
{
return $this->status == self::ACCEPTED;
}
public function isError()
{
return $this->status == self::ERROR;
}
public static function statuses()
{
return self::statuses();
}
public function getStatusAttribute($value)
{
return self::$statuses[$value];
}
}
И у меня есть этот файл перевода, который я собираюсь использовать для преобразования числовых значений, хранящихся в базе данных в качестве статуса, в читаемый текст для пользователей, когда они видят список уведомлений в представлении:
// /resources/lang/en/constants.php
return [
/*
* Notifications constants
*/
'notification' => [
'no_status' => 'No status',
'sent' => 'Sent',
'accepted' => 'Accepted',
'error' => 'Error',
],
];
У меня есть функция доступа getStatusAttribute
в модели для получения его кода состояния в виде текста, но я не могу установить значение статического атрибута (очевидно), например:
public static $statuses = [
self::NO_STATUS => trans('constants.notification.no_status'),
self::SENT => trans('constants.notification.sent'),
self::ACCEPTED => trans('constants.notification.accepted'),
self::ERROR => trans('constants.notification.error'),
];
Любое предложение о том, как я могу достичь этого?
Я хочу, чтобы возвращаемое свойство в объекте стало уже переведенным текстом, вместо того, чтобы перевести его в представление, если это возможно.
Спасибо за ваше время.