2015-03-08 68 views
5

我一直在嘗試從Yii2中學習Block,從Yii2 guide。在區段部分,我已經發現了一些這樣的代碼:什麼是Yii2中的Block

<?php $this->beginBlock('block1'); ?> 

...content of block1... 

<?php $this->endBlock(); ?> 

我想實現這個代碼,並把它變成一個view文件,但沒有得到結果或輸出,因爲我是新的這個東西,不明白如何使用它。你能告訴我什麼是Block,如何使用它以及爲什麼我們應該使用它。

+0

是否[文檔](http://www.yiiframework.com/doc-2.0/yii-widgets-block.html)不清楚?你到底在做什麼? – Jon 2015-03-08 22:28:30

+0

其實,我不知道使用這個'terms' – StreetCoder 2015-03-08 22:33:03

回答

7

Block類擴展了Yii小部件類以實現單一目的。允許以字符串形式返回'代碼塊',而不是內聯顯示。

例如,如果您想多次重複使用一段在運行時生成的html,這可能很有用。

實施

在視圖中爲塊聲明的代碼部分,首先圍繞着它的開始和結束陳述的問題,建議以適當的名稱

<?php $this->beginBlock('myblock') ?> 
...<div>your html & php mixed code here</div>.... 
<?php $this->endBlock() ?> 

(你如果您需要將其顯示在原始位置,則可以添加第二個參數作爲真實開始塊)

接下來,您可以在同一視圖中的任意位置使用該命名塊,或者子視圖儘可能多的次數,只要你喜歡

echo $this->blocks['myblock'] 
+0

感謝解釋。我會試試看。 – StreetCoder 2015-03-09 12:16:28

+2

這可以用來在不同的文件中創建塊嗎?我想知道是否有方法從其他文件創建塊,然後在需要時從其他視圖調用它 – nosthertus 2015-10-29 00:21:33

+0

您可以使用部分視圖。另一個好主意可能是實際製作小部件,並根據調用在小部件中包含的單獨文件中的每個塊中使塊成爲其中的一部分。 – arkoak 2015-10-30 06:16:42

相關問題