Laravel 的 Blade:新行将 space 附加到之前的 echo

Laravel's Blade: New line appends space to former echo

我有 2 个字段 - 国家和城市 - 我想这样显示:国家、城市(逗号后有一个 space)。我现在能做到的唯一方法是将所有内容放在一行中:

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

这真是可笑。

现在,假设我想让它变得可读:

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

一旦第二个 echo 换行,整个字符串就会在 "Country" 之后显示 space:Country,City

超级讨厌。有人知道如何防止这种行为吗?

你可以这样做

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

我觉得可读性很强 :)

还有另一种方法:在您的模型中使用访问器。为简洁起见,我使用 PHP 的三元运算符 - 你可以更详细一点并使用 if/else.

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

那么,在您看来:

<li>{{{ $obj->country_and_city }}}</li>