![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam mam problem z ktorym tocze walke od kilku godzin i czuje sie zagubiony wiec prosze was o pomoc. Jestem poczatkujacy w php i to moja pierwsza aplikacjia w framworku zend. Tworze panel do zarzadzania uzytkownikami i otrzymuje komunikat : <pre> Użytkownicy systemu Nazwa użytkownika Email Hasło Notice: Undefined variable: user in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 12 Notice: Trying to get property of non-object in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 12 Notice: Undefined variable: user in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 13 Notice: Trying to get property of non-object in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 13 Notice: Undefined variable: user in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 14 Notice: Trying to get property of non-object in C:\xampp\htdocs\zend\module\Users\view\users\user-manager\index.phtml on line 14 </pre> zmienna ktora przekazuje z kontrollera istnieje i zawiera tablice z uzytkownikami sprawdzalem za pomoca <<var_dump>> oto moje klasy : CONTROLLER <pre> <?php namespace Users\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\Authentication\AuthenticationService; use Zend\Authentication\Adapter\DbTable as DbTableAuthAdapter; use Users\Form\RegisterForm; use Users\Form\RegisterFilter; use Users\Model\User; use Users\Model\UserTable; use Users\Model\UserMail; class UserManagerController extends AbstractActionController { public function indexAction() { $this->layout('layout/layout'); $userTable = $this->getServiceLocator()->get('UserTable'); $viewModel = new ViewModel(array('users' => $userTable->fetchAll())); return $viewModel; } } ?> </pre> VIDOK <pre> <h3>Użytkownicy systemu</h3> <table class="table"> <tr> <th>Nazwa użytkownika</th> <th>Email</th> <th>Hasło</th> <th> </th> </tr> <? foreach($users as $user): ?> <tr> <td><?php echo $this->escapeHtml($user->name);?></td> <td><?php echo $this->escapeHtml($user->email);?></td> <td><?php echo $this->escapeHtml($user->password);?></td> <td> <a href="<?php echo $this->url('users/user-manager', array('action'=>'edit', 'id' => $user->id));?>">Edycja</a> | <a href="<?php echo $this->url('users/user-manager', array('action'=>'delete', 'id' => $user->id));?>" onclick="return confirm('Jesteś pewien ?')">Usunięcie</a> </td> </tr> <? endforeach; ?> </table> </pre> FUNKCJA DLA SERVICELOCATOR W MODUL.PHP <pre> public function getServiceConfig() { return array( 'abstract_factories' => array(), 'aliases' => array(), 'factories' => array( // SERWISY 'AuthService' => function($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'user','email','password', 'MD5(?)'); $authService = new AuthenticationService(); $authService->setAdapter($dbTableAuthAdapter); return $authService; }, 'UserTable' => function($sm) { $tableGateway = $sm->get('UserTableGateway'); $table = new UserTable($tableGateway); return $table; }, 'UserTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new User()); return new TableGateway('user', $dbAdapter, null, $resultSetPrototype); }, 'UserEditForm' => function ($sm) { $form = new \Users\Form\UserEditForm(); $form->setInputFilter($sm->get('UserEditFilter')); return $form; }, 'UserEditFilter' => function ($sm) { return new \Users\Form\UserEditFilter(); }, ) ); } </pre> zmienna przekazuje do widoku, gdy dodalem ten kod do widoku: <pre> <?php if ($this->users): ?> <p> zmienna zostala przekazana </p> <?php endif ?> </pre> i wyswietla mi sie tekst zmienna zostala przekazane, wiec nie czaje co jest nie tak i jeszcze raz zwracam sie o pomoc do was |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrób var_dumpa w widoku a nie kontrolerze
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
chcialbym sprostowac powyzszego maila
dajac w kontroleze <pre> public function indexAction() { $this->layout('layout/layout'); $userTable = $this->getServiceLocator()->get('UserTable'); $viewModel = new ViewModel(array('users' => $userTable->fetchAll())); var_dump( $userTable->fetchAll());die(); return $viewModel; } </pre> otrzymuje pusta tablice <pre> object(Zend\Db\ResultSet\ResultSet)#276 (8) { ["allowedReturnTypes":protected]=> array(2) { [0]=> string(11) "arrayobject" [1]=> string(5) "array" } ["arrayObjectPrototype":protected]=> object(Users\Model\User)#257 (4) { ["id"]=> NULL ["name"]=> NULL ["email"]=> NULL ["password"]=> NULL } ["returnType":protected]=> string(11) "arrayobject" ["buffer":protected]=> NULL ["count":protected]=> int(3) ["dataSource":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Result)#267 (8) { ["statementMode":protected]=> string(7) "forward" ["resource":protected]=> object(PDOStatement)#268 (1) { ["queryString"]=> string(27) "SELECT `user`.* FROM `user`" } ["options":protected]=> NULL ["currentComplete":protected]=> bool(false) ["currentData":protected]=> NULL ["position":protected]=> int(-1) ["generatedValue":protected]=> string(1) "0" ["rowCount":protected]=> int(3) } ["fieldCount":protected]=> int(4) ["position":protected]=> int(0) } </pre> jezeli ktos bylby zainteresowany to prosilbym o kontakt na dextermailx@gmail.com przesle cala aplikacjie zapewne to jakas drobnostka |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 45 Dołączył: 5.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
1. To używaj odpowiednich tagów przy pisaniu postów na forum, aby zachować formatowanie tekstu, bo strasznie źle się czyta taki plain text.
2. W widoku odwołujesz się w ten sposób do zmiennych nadanych w kontrolerze
Tak więc, zamiast:
Powinno być:
Dlatego też ten kod zadziałał: Cytat zmienna przekazuje do widoku, gdy dodalem ten kod do widoku:
i wyswietla mi sie tekst zmienna zostala przekazane, wiec nie czaje co jest nie tak i jeszcze raz zwracam sie o pomoc do was |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
probowalem juz sie odwolywac do obiektu $users na kilka sposobow :
lecz nic z tego otrzymuje taki blad
a dajac w kontrollerze var_dum razem z funkcja ktora pobiera wszystkie rekordy z bazy
klasa w folderze MODEL w ktorej znajduje sie funkcja fetchALL()
w var_dump( $userTable->fetchAll());die(); otrzymuje :
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie: <? foreach($this->users as $user): ?>
a: <?php foreach($this->users as $user): ?> (IMG:style_emoticons/default/smile.gif) ps: oczywiscie analogicznie reszta odwolan, jak np: <? endforeach; ?> ma byc <?php endforeach; ?> itd |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
var_dumpa w widoku znowu zrobiłeś na $users a nie $this->users
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Turson czepiasz sie nie istotnych rzeczy.... problem juz wskazalem (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli nieistotne to po co w ogóle robić var dumpa (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No wlasnie mowie: wszystkie te var_dumy sa nie istotne. Problem jest w tym, ze <? nie jest interpretowane jako php... Ot i caly problem
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzieki wielkie dziala poprawnie
wyswietla mi to co powinno gdy dalem :
stwierdzam ze za szybko sie porwalem na zenda i raczej powinienem powrocic do podstaw php |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:54 |