2015-03-08 10 views
5

Próbowałem dowiedzieć się o Block w Yii2 z Yii2 guide. W sekcji bloku, znalazłem jakiś kod jak:Co to jest blok w Yii2

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

...content of block1... 

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

Próbuję zaimplementować ten kod i umieścić go w pliku view ale nie dostaję wynik lub wyjście, bo jestem nowy w tej rzeczy i nie rozumiem Jak tego użyć. Czy możesz mi powiedzieć, kim jest Block, jak go używać i dlaczego powinniśmy go używać.

+0

Czy [dokumentacja] (http://www.yiiframework.com/doc-2.0/yii-widgets-block.html) jest niejasna? Z czym dokładnie masz problem? – Jon

+0

Właściwie, nie wiem, jak używać tego "pojęć" – StreetCoder

Odpowiedz

7

Klasy bloków rozszerzają klasę widżetów Yii dla jednego celu. Aby umożliwić zwrócenie "bloku kodu" jako łańcucha zamiast wyświetlania w linii.

Może to być użyteczne na przykład, jeśli chcesz ponownie użyć kilka razy, kawałek HTML, który jest generowany w czasie wykonywania.

Realizacja

Aby zadeklarować część kodu w widoku jako blok, pierwszy otaczają go przez zacząć i sprawozdanie końcowe, jak zasugerowano w pytaniu z odpowiednią nazwą

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

(ci może dodatkowo przekazać drugi parametr jako wartość true, aby rozpocząć blok, jeśli trzeba go również wyświetlić w pierwotnej lokalizacji)

Następnie można użyć tego nazwanego bloku w dowolnym miejscu w tym samym widoku lub widok dziecka tyle razy, ile chcesz

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

, aby wyjaśnić. Spróbuję tego. – StreetCoder

+2

czy można go użyć do utworzenia bloku w innym pliku ?, chciałbym się dowiedzieć, czy istnieje sposób na utworzenie bloku z innego pliku, a następnie wywołanie go z innych widoków, gdy tego potrzebuję. – nosthertus

+0

Możesz używać widoków częściowych . Innym dobrym pomysłem może być faktyczne tworzenie widgetów i tworzenie bloków z każdym blokiem w oddzielnym pliku zawartym w widgecie na podstawie wywołania. – arkoak