Laravel用Blade中的单词替换缩写

时间:2019-02-01 10:42:40

标签: laravel translation laravel-blade

我们在表格中有特定的列,它们的状态为缩写,我们希望将这些短单词beeing替换为完整单词。

例如:

E => Error
R => Running
D => Done

我已经看到过Laravel Translation之类的东西,但这不是我们所需要的吗?这不是语言翻译。

寻找可以设置每个缩写词完整词的东西,并在刀片中显示这些完整词,例如:

@get_full_word(column_name)

将输出全名

2 个答案:

答案 0 :(得分:1)

我认为这对Mutators来说是最好的情况。

class Test extends Model
{

    protected $fullStatus = [
        'E' => 'Error',
        'R' => 'Running',
        'D' => 'Done',
    ];


    public function getFullStatusAttribute()
    {
        return $this->fullStatus[
            $this->status
        ];
    }
}

当然,如果它在许多类中,最好创建一个保存代码的Trait。

答案 1 :(得分:0)

您可以创建自己的blade directive

Blade::directive('abbreviation', function ($abbreviation) {
    return "<?php echo Abbreviation::get($abbreviation); ?>";
});

其中Abbreviation是您的带有缩写的班级,例如

class Abbreviation
{
    private $abbreviations = [
        'E' => 'Error'
        'R' => 'Running'
        'D' => 'Done'
    ];

    public static function get($abbreviation)
    {
        return $abbreviations[$abbreviation];
    }
}

比您可以在刀片@abbreviation('D')中使用它