Laravel's Blade: новая строка добавляет пробел к прежнему эху

У меня есть 2 поля - страна и город, которые я хочу отобразить так: Страна, Город (с одним пробелом после запятой). Единственный способ сделать это сейчас — поместить все в одну строку:

<li>{{{ $obj->country }}}@if($obj->city){{{ ', '.$obj->city }}}@endif</li>

Это действительно смешно.

Теперь, допустим, я хочу сделать его читабельным:

<li>
    {{{ $obj->country }}}
    @if($edu->city)
        {{{ ', '.$obj->city }}}
    @endif
</li>

Как только второе эхо переходит на новую строку, вся строка отображается с дополнительным пробелом после «Страна»: Страна , Город.

Супер раздражает. Кто-нибудь знает, как предотвратить такое поведение?


person lesssugar    schedule 03.01.2015    source источник


Ответы (2)


Вы могли бы просто сделать это

<li>
    @if($edu->city)
        {{{ $obj->country.', '.$obj->city }}}  
    @else
        {{{ $obj->country }}}
    @endif
</li>

Мне кажется очень читаемым :)

person Laurence    schedule 03.01.2015
comment
Верно :) Спасибо. - person lesssugar; 03.01.2015

Есть и другой способ: используйте в своей модели аксессор. Для краткости я использую тернарный оператор PHP — вы могли бы сделать немного больше подробностей и использовать if/else.

public function getCountryAndCityAttribute() {
  return $this->country . ($this->city ? $this->city : '');
}

Тогда, на ваш взгляд:

<li>{{{ $obj->country_and_city }}}</li>
person ceejayoz    schedule 03.01.2015