Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny]Yii2 Zmiana kontrolera? nie znaleziono strony
Forum PHP.pl > Forum > PHP > Frameworki
Boshi
Niech mnie ktoś oświeci co jest grane z tym całym Yii2 albo ze mną biggrin.gif

Mam coś takiego;
SiteController (podstawowy), pasek adresu wygląda tak;

  1. http://localhost/yii2-app-advanced/frontend/web/?r=site/hello


  1. public function actionHello()
  2. {
  3. $message='hello';
  4. return $this->render('index', ['message' => $message]);
  5. }


Dlaczego tworząc nowy folder w View o nazwie np nowy i zmieniając w adresie r=nowy/hello dostaję nie znaleziono strony? nawet oficjalna dokumentacja tak to przedstawia.. Rozwiązanie jakie udało mi się osiągnąć to przy wywołaniu render trzeba dać

  1. return $this->render('nowy\index', ['message' => $message]);
i wtedy tak to zadziała

  1. http://localhost/yii2-app-advanced/frontend/web/?r=site/hello



Drugie pytanie:
baza danych musi byc jakoś specjalnie zintegrowana? bo stworzyłęm nową, dodałem table itd, zmieniłem podpięcie w pliku comon->main-local i dostałem, że nie zna takiej bazy. Wróciłem do podstawowej gdzie mam tabele migration i user(na początku konfigurowałem to z jakiegoś tutoriala) i tam działa normalnie.

Trzecie Pytanie: Jak wywoływać akcje z własnego kontrolera? stworzyłem swój, stworzyłem metodę jak powyżej i w ogóle tego nie widzi, dopiero w siteController wszystko jest->czylii gdzieś ustawiony jest na siteController.
Turson
r=site/hello oznacza kontroller Site i metodę w tym kontrolerze actionHello() dlatego nie mozesz ot tak zrobic r=nowy/hello bo to wskazuje na kontroler Nowy
Boshi
Ok turson, to już coś wyjaśnia, myślałem, że jedno to kontroller, drugie to widok. Jednak dalej pluje, że nie ma takiego pliku. Z kontrolera Site oczywiście wszystko gra.

Mój kontroller

  1. <?php
  2.  
  3. namespace frontend\controllers;
  4.  
  5. use Yii;
  6. use yii\web\Controller;
  7.  
  8.  
  9. class MyController extends Controller
  10. {
  11. public function actionHello()
  12. {
  13. return $this->render('pliczek');
  14. }
  15. }



  1. http://localhost/yii2-app-advanced/frontend/web/index.php?r=my/hello
Turson
Masz plik pliczek w views/my
Czytaj dokladnie komunukaty błędów bo my ich nie widzimy
Boshi
O matko... nie wiedziałem, że do każdego kontrolera musi być osobny widok, działa. Dzięki Turson !

Jeszcze pytanie odnośnie tej bazy danych.
ss
Baza działająca:

http://gyazo.com/0a932d7f607ebf649bc55efff560e232

A wystarczy, że przełącze się na jakąś inną to pisze, że nie zna takiej bazy.
Turson
Nie miałem nigdy styczności z Yii2 ale w Yii1 było tak, że modele są powiązane z konkretną tabelą, czyli każda tabela ma swój model. Podejrzewam, że masz aktualnie modele skonfigurowane pod inną bazę (tę co działa), a inna baza = nowe modele. Pola klasy modelu = pola tabeli. To w sumie takie encje
pasman
Cytat(Boshi @ 27.04.2015, 13:29:51 ) *
A wystarczy, że przełącze się na jakąś inną to pisze, że nie zna takiej bazy.



pokaż konfigurację bazy i komunikat błędu.
Boshi
Baza już działa smile.gif

Jeszcze jedno pytanie, jaka jest zasadnicza różnica między frontend a backend w strukturze plików? Z tego co widziałem to na templatce basic, większość rzeczy przedstawiają na frontendzie a po przesiadce na advance wszystkie modele, pliki crud itd są na bacendzie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.