2016-06-15 320 views
0

其中這兩個是在laravel使用刀片的最佳做法:最佳實踐{{}}

<p>{{ $person->name }} {{ $person->surname }}</p><p>{{ $person->name . ' ' . $person->surname }}</p>

謝謝!

+3

我個人會主張第一個。或者製作一個能夠結合這兩者的雄辯訪問器,以便您可以執行'{{$ person-> fullName}}'。 – ceejayoz

+0

馬鈴薯,土豆。 – Vucko

+0

@Vucko有沒有人*實際上*說po-tah-toe? – ceejayoz

回答

3

這兩者都不是好的選擇,因爲如果一個人是空的(姓或名) - 你將有一個額外的空間,這並不意味着什麼。

最佳實踐是:

1)對您個人的類,它串聯爲您實現類似的getName()方法。例如。

public function getName() 
{ 
    return implode(' ', array_filter([$this->name, $this->surname]))); 
} 

且模板中它會成爲只是<p>{{ $person->getName() }}</p>

2)如果您有渲染之前需要改變更多的屬性 - 一個常見的做法是將它們全部解壓到一個演示類(這是一個設計模式)。那麼你的模板看起來就像<p>{{ $person->presenter()->getName() }}</p>。但如果它只是名字 - 你可能很好,只是把它放在Person類中。

+1

爲了補充一點,我通過將函數名改爲'getNameAttribute'使之成爲一個動態屬性,以便像'$ person-> name'那樣訪問它' – Shane

0

這通常都歸結於個人偏好,兩者都是完全有效的方法,我喜歡保持一切分離,因爲至少對我來說(不是每個人都會認爲這樣更簡單/更清潔),它變得更容易添加像這樣的額外標記;

<b>{{ $person->surname }}</b>, <small class='text-muted'>{{ $person->name }}</small> 

我總是喜歡在啞天來考慮的話,如果你遇到的那些日子裏,你就不能想,這是一個更容易閱讀你:)