Jeśli cała moja strona korzysta z układu default.ctp określonego w apps/view/layouts/default.ctp, jak zmienić tylko układ strony głównej, aby użyć strony głównej.ctp i opuścić reszta strony za pomocą default.ctp?Zmiana tylko układu strony głównej w cakephp
Odpowiedz
Skopiuj /cake/libs/controller/pages_controller.php
do swojej /app/controller/
katalogu i wykonaj jedną z następujących czynności:
- Dodaj linię pod koniec
display()
aby przełączyć układ if „home” jest wymagane:
if ($page == 'home') $this->layout = 'homepage';
- Tworzenie metoda
home()
(lub nazwana tak jak lubisz), w której ustawiasz$this->layout
i zmieniasz trasę/
w/app/config/routes.php
, aby użyć tej nowej metody.
Edit:
Podsumowując, trzeba jakąś niestandardową metodę, w której możesz ustawić $this->layout = 'homepage'
, to wszystko. Możesz to zrobić w dowolnym ze swoich kontrolerów w dowolnym momencie, ponowne użycie PagesController
jest najwygodniejszym i najbardziej konwencjonalnym sposobem na zrobienie tego w Cake.
Powyższa odpowiedź jest już nieaktualna, ale daje właściwe podejście.
W nowoczesnych wersjach CakePHP, kontroler prosi o dokonywanie jest już obecny i jest:
/app/Controller/PagesController.php
miałem szablon o nazwie „loggedoff” i dodał, to w następujący sposób, tuż przed komendą $this->render()
(w przybliżeniu linia 73).
$this->layout = 'loggedoff';
Działa to dobrze:
class RegistrationsController extends AppController {
public $helpers = array('Html', 'Form', 'Time');
public $components = array('Session');
public function login() {
$this->layout = 'empty';
}
}
Wystarczy ustawić żądany układ w funkcji regulatora.
- 1. Zmiana poziomu głośności głównej
- 2. CakePHP Zobacz przedłużenie zmiana
- 3. Zmiana programowalnego układu względnego
- 4. Zmiana układu/konstrukcji układu z Androidem
- 5. Zmiana układu powiadomień
- 6. ggplot2: Zmiana układu legendy
- 7. Uzyskaj identyfikator strony głównej Wordpress
- 8. Równoważnik strony głównej ASP.NET w Javie
- 9. Pobierz tytuł strony w kodzie strony głównej za
- 10. Uwierzytelnianie: app_dev.php/_wdt/511509b611682 zamiast strony głównej
- 11. Nie można znaleźć strony układu.
- 12. Uniwersalny javascript do ustawiania funkcjonalności strony głównej
- 13. rama Zmiana układu danych w R
- 14. zmiana koloru tła układu w Androidzie
- 15. jak funkcja pobierania działa w CakePHP widoku układu
- 16. Animowana zmiana rozmiaru układu po otwarciu klawiatury
- 17. CakePHP przechowuje sesje z domeny głównej do subdomeny
- 18. Zmiana marginesu strony w LyX
- 19. Jak wywołać funkcję javascript strony podrzędnej ze strony głównej javascript
- 20. Jak zastąpić węzeł strony głównej tpl - drupal
- 21. Przekieruj dowolną poddomę do strony głównej domeny
- 22. Jak uzyskać adres URL strony głównej?
- 23. Wszelkie pomysły dotyczące identyfikacji głównej treści strony?
- 24. Przesuwanie zawartości/zmiana strony
- 25. Zmiana motywu strony
- 26. Zmiana dynamiczna ViewStart ścieżka układu w MVC 3
- 27. Zmiana układu przy najechaniu na obiekt
- 28. RecyclerView - animowana zmiana kolumn menedżera układu siatki
- 29. Zmiana układu Matrix Elementy z NumPy
- 30. Mac OS X: Zmiana układu klawiatury przechwytywania
Nie nadpisuje klasy trochę mądrzej. Domyślam się również, że '$ this-> layout' może być wywołane z innej funkcji, czegoś' init'-like. – Franz
Właściwie nie potrzebujesz nawet oryginalnego 'PagesController' - możesz użyć tras do wskazania niestandardowego kontrolera i ustawić' $ this-> layout' stamtąd –
@Franz Co masz na myśli przez "nadpisywanie"? – deceze