Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Undefined variable
codeszan
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Wyskakują mi błędy, iż nie mam zdefiniowanej zmiennej $generateMenu ale ona przecież jest?
Działam na zasadzie model-> controller->widok, tylko tym razem cos chyba jest nie tak?

View:
  1. <?php foreach ($generateMenu as $item) : ?>
  2. <?php echo $item['name']; ?>
  3. <?php endforeach; ?>

Controller:
  1. public function generateMenu(){
  2. $data['getModule'] = $this->model_panel->getModule();
  3. if (!$data['getModule']) {
  4. var_dump( $data['getModule']);
  5.  
  6. $this->view->load('/panel/templates/menu', $data);
  7.  
  8. }
  9.  
  10. }


Model:
  1. public function getModule()
  2. {
  3. $this->db->select('name');
  4. $this->db->from('modules');
  5. $query = $this->db->get();
  6.  
  7. if ($query->num_rows() > 0) {
  8. return $query->result_array();
  9. }
  10.  
  11. }


Dokładne błędy to:
1. Message: Undefined variable: generateMenu
2. Message: Invalid argument supplied for foreach()
Wskazuja na linie z:

  1. <?php foreach ($generateMenu as $item) : ?>


Ten post edytował codeszan 27.08.2017, 23:07:42
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Ja tam w kodzie widzę metodę a nie zmienną która nic nie zwraca tylko coś wczytuje.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Zacznij od samego komunikatu.
zmienna nie jest zdefiniowana tzn. że wcześniej w żaden sposób nie jest utworzona/wczytana czyli:

W skrócie masz coś takiego:
  1. function foo() {
  2. return $bar;
  3. }


Kod
Message: Undefined variable: bar


ale gdy dodam już coś:

  1. function foo($bar = null) {
  2. return $bar;
  3. }


to notki nie będzie.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





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

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


Obstawiam że zamiast `$generateMenu` powinno być `$getModule`
Go to the top of the page
+Quote Post
codeszan
post
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Zarowno $generateMenu jak i $getModule w vidoku zwracaja null ..

Cytat
Ja tam w kodzie widzę metodę a nie zmienną która nic nie zwraca tylko coś wczytuje.


wartość metody stworzonej w modelu zwracam do controllera, nastepnie zapisuje w $data['getModule'] i chce wylistować w widoku

Nie moge przeslac nawet czegos takeigo:
  1. $data = 'jakis test';
  2. $this->load->view('/panel/templates/menu', $data);
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Bo pewnie $data coś zawiera. Co robi load? Mamy zgadywać?


--------------------
Go to the top of the page
+Quote Post
codeszan
post
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Pomoglo mi zdefiniowanie jeszcze raz data w konstuktorze aczkolwiek teraz dublowal mi sie szablon menu.

Czy da sie przekazywac dane do widoku ale go nie ladowac?

O ten element mi chodzi

  1. $this->load->view('/panel/templates/menu', $data,FALSE);
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Powtórzę jeszcze raz. A skąd my mamy wiedzieć z czego ty korzystasz i czym w tym wypadku jest widok, kontroler, co zawieraja?


--------------------
Go to the top of the page
+Quote Post
codeszan
post
Post #9





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Zadam pytanie ponownie. Czy mogę załadować daną (obojętnie jaką ) z kontrolera do widoku. Tak by nie wczytać przy okazji widoku tak jak to się dzieje powyzej? Korzystam z CodeIgniter obecnie. Sama zawartosc juz nie jest istotna.

Ten post edytował codeszan 28.08.2017, 19:15:18
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tak, możesz: https://www.codeigniter.com/user_guide/general/views.html Tylko dlaczego od razu nie napisałeś że chodzi o CI.
Przed $this->view->load sprawdź co zawiera $data.


--------------------
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: 21.08.2025 - 01:14