Laravel将缩写替换为刀片中的单词



我们在表中有特定的列具有状态,这些是缩写,我们希望这些简短的单词被完整的单词替换。

例如:

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

我已经把事情看成拉拉维尔翻译,但我想这不是我们需要的吗?这不是语言翻译。

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

@get_full_word(column_name)

将输出全名

我认为这是突变者的最佳情况。

class Test extends Model
{
    protected $fullStatus = [
        'E' => 'Error',
        'R' => 'Running',
        'D' => 'Done',
    ];

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

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

您可以创建自己的刀片指令。

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')

使用它

最新更新