Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Laravel] Page chooser
L0k0
post
Post #1





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Witam!

Mam szablon (widok) strony: menu, środek, stopka. W zależności od kliknięcia na odnośnik w menu chciałbym, żeby w 'środku' ładował się odpowiedni widok.

Jest to sytuacja typu page_chooser ze zwykłego PHP.

Wie ktoś może jak takie cudo zrobić w Laravelu? Wiem, że wstawianie widoku odbywa się przez @include ale czy jest mechanizm podmiany widoku?

Pozdrawiam!
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ajax?
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #3





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nie ma mechanizmu podmiany widoku, bo Laravel to framework backendowy. Musisz dodać kontroler, który ładuje sam widok, np. mojastrona.pl/views/contact, w którym zwracasz HTML widoku bez żadnych dodatkowych danych na wyjściu. Potem Ajaxem wczytujesz ten URL, podając odpowiedni widok jako jego część.
Go to the top of the page
+Quote Post
L0k0
post
Post #4





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedzi.

Zastanawia mnie czy nie można zrobić czegoś w rodzaju:
  1. $url = Request::url()
  2.  
  3. if($url = 'www.moja.strona/podstrona') {
  4. $widok = 'podstrona';
  5. }
  6.  
  7. return view('glowny', array('widok' => $widok));


i w widoku głównym

  1. @include(widok)


?

Czy w ogóle w @include mogę stawić zmienna?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Do tego się używa @yield i @extends.

main.blade.php
  1. <!doctype html>
  2. <html lang="en">
  3. <meta charset="UTF-8">
  4. <title>Document</title>
  5. </head>
  6. @yield('content')
  7. </body>
  8. </html>

widok1.blade.php
  1. @extends('main')
  2.  
  3. @section('content')
  4. Tutaj content wstawiony
  5. @stop


i w kontrolerze
  1. return view('widok1');

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:58