2015-06-25 3 views
0

Что такое лучший способ преобразовать это:Расширение функций шаблона Laravel

<div id="{{ $stat->type }}-{{ 
    str_replace(' ', '-', strtolower($stat->description)) 
    }}-chart"> 
</div> 

в этом:

<div id="{{getDivId($stat)}}"> 

Я имею в виду, мне нужно создать функции для использования внутри шаблона лезвия, я нашел что-то, что использует @ в документации laravel, но я не хочу использовать @, я хочу использовать {{ }}.

+0

У Laravel уже есть то, что вы ищете: '{{str_slug ($ stat-> description)}}' –

ответ

0

Мне нравится ставить это на мою модель, если у меня их не так много. Массив $appends добавляет его к каждому запросу.

Stat.php

protected $appends = array('div_id'); 

public function getDivIdAttribute() 
{ 
    return $this->type .'-' 
    .str_replace(' ', '-', strtolower($this->description)); 
} 

Тогда вы можете получить доступ к нему, как это на шаблоне лезвия.

<div id="{{ $stat->divId }}"> 

Если у вас есть много, вы можете посмотреть в использовании Presenter класса.