![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Stworzyłem kontroler, który sprawdza, czy została zainicjowana sesja, a jeśli nie to czy istnieje plik cookie. Jeżeli jeden z tych warunków został spełniony, zostaje wyświetlone menu usera, w przeciwnym wypadku zostaje wyświetlona prośba o zalogowanie, bądź rejestrację. Testowałem go na "sucho" i wszystko działa ok, do czasu kiedy includowałem ten skrypt do mojego layoutu (co wiązało się także z koniecznością uruchomienia opcji allow_url_include w php.ini). Otóż, za każdym razem nie można odnaleźć pliku cookie. Stworzyłem więc nowy, uproszczony skrypt dla testu. Efekt jest dokładnie taki sam. Plik ten wygląda następująco
W widoku mam natomiast:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Czemu includujesz controller do widoku ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ chcę, zeby w określonym miejscu layoutu znalazł się ten skrypt. Wiem, ze można dołączyć dane do widoku z kontrolera za pomocą tablicy, ale w tym przypadku chcę, żeby ten skrypt był dołączony do każdego pliku i ten sposób wydawał mi się prostszy.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o architekturze MVC, oraz dokumentacje CI. To co teraz tworzysz to czysta herezja, która nie ma prawa zadziałać.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zaglądałem do manuala CI, ale nie znalazłem tam informacji, które pomogłyby mi w zrealizowaniu tego zadania. O samej architekturze także czytałem i to nie tylko w manualu CI, ale teraz specjalnie sięgnąłem do innych stron, opisujących (ogólnie) tę problematykę. Niestety nie daje mi to praktycznej wiedzy, jak rozwiązać ten problem. Możesz dać mi przynajmniej jakieś wskazówki?
Ten post edytował Testosteron 26.10.2014, 14:27:34 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli skrypt ma być wywoływany w wielu miejscach to zrób z niego helper.
Jednak znacznie lepszym pomysłem jest umieszczenie tego skryptu w kontrolerze. Jeżeli skrypt ma być wywoływany w wielu funkcjach (podstronach) to umieść go po prostu w konstruktorze, a jeżeli w całej aplikacji to stwórz MY_Controller. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie utworzyłem z niego kontroler, tylko nie wiem jak go zgrabnie dołączyć do widoku, tak, żeby stał sie jego częścią.
W tej chwili stworzyłem jeden layout w którym chcę umieścić ten skrypt, a przejściu na kolejne podstrony zmienia się tylko content. Ten post edytował Testosteron 27.10.2014, 09:38:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Właśnie utworzyłem z niego kontroler, tylko nie wiem jak go zgrabnie dołączyć do widoku, tak, żeby stał sie jego częścią. Używasz takich sformułowań jakbyś w ogóle nie rozumiał idei MVC. Z kontrolera masz przekazywać do widoku odpowiednią zmienną, a nie odwrotnie. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak też próbowałem, tj.
Wynik wykonania jest wyrzucany nad <html>. Pisałeś też, że mogę stworzyć helper. Musiałbym jednak przebudować kod, ponieważ korzystam w nim z bibliotek. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To uzyj go w odpowiednim miejscu w widoku.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Użyłem. Jeżeli zamiast metody wrzucę zwykłego stringa to wszystko jest ok.
Ten post edytował Testosteron 29.10.2014, 08:08:56 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Pokaż kod metody log_user
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ten sam problem występuje, jeśli stworzę testową klasę, drukującą jakiś komunikat. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Echo w metodzie? Łamiesz zasady MVC
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wiem, wiem. Na razie chcę stworzyć szkielet, który będzie działał.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Próbujesz przekazać do widoku metodę, która pluje echo, wyświetla content, ładuje widok i w ogóle. Zacznij wolniej ale poprawnie.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 2 Dołączył: 15.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przeprowadziłem mały test. Stworzyłem nową metodę, która ładuje jakiś tam widom. W widoku tym znajduje się tylko tekst. Efekt jest dokładnie taki sam. Tak jak zaznaczałem wcześniej - to jest moja pierwsza styczność z MVC i ciężko jest na początku wszystko ogarnąć.
Z tego co zauważyłem, jeśli metoda zwraca int, to widok normalnie odbierą taką wartość. W przypadku, gdy wysyłam stringa, zaczynają się problemu. To co? Mam wysyłać int'y, a w widoku zrobić instrukcję warunkową switch? Na razie tylko to przychodzi mi do głowy, chociaż skrypt będzie później trudniejszy w modyfikacji. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
application/controllers/TestController.php
application/views/test/index.php |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:51 |