Chciałbym wykonać w jednym controlerze kilka zapytań do różnych tabeli w bazie danych i na chwilę obecną nie wiem jak sobie z tym poradzić może wy macie jakiś pomysł na to rozwiązanie (IMG:
style_emoticons/default/smile.gif) z góry dzięki (IMG:
style_emoticons/default/smile.gif)
Model.php
<?php
namespace Mydata;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
use Zend\Db\Adapter\AdapterInterface;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
class Module implements ConfigProviderInterface
{
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}
public function getServiceConfig()
{
return [
'factories' => [
Model\MydataTable::class => function ($container) {
$tableGateway = $container->get(Model\MydataTableGateway::class);
return new Model\MydataTable($tableGateway);
},
Model\MydataTableGateway::class => function ($container) {
$dbAdapter = $container->get(AdapterInterface::class);
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Model\Mydata());
return new TableGateway('ps_user', $dbAdapter, null, $resultSetPrototype);
},
Model\UserBankTable::class => function ($container) {
$tableGateway = $container->get(Model\UserBankTableGateway::class);
return new Model\UserBankTable($tableGateway);
},
Model\UserBankGateway::class => function ($container) {
$dbAdapter = $container->get(AdapterInterface::class);
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Model\UserBank());
return new TableGateway('ps_user_bank_account', $dbAdapter, null, $resultSetPrototype);
},
],
];
}
public function getControllerConfig()
{
return [
'factories' => [
Controller\MydataController::class => function ($container) {
return new Controller\MydataController(
$container->get(Model\MydataTable::class)
);
},
],
];
}
}
MydataController.php
<?php
namespace Mydata\Controller;
use Mydata\Model\UserBankTable;
use Mydata\Model\MydataTable;
use Mydata\Form\AccountNumberForm;
use Mydata\Form\UserPasswordForm;
use Mydata\Form\UserForm;
use Zend\Mvc\MvcEvent;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class MydataController extends AbstractActionController
{
private $table;
public function __construct(MydataTable $table)
{
$this->table = $table;
}
public function onDispatch(MvcEvent $e)
{
$response = parent::onDispatch($e);
$this->layout()->setTemplate('layout/admin');
return $response;
}
public function indexAction()
{
$id = '1';
$mydata = $this->table->getUser($id);
$UserForm = new UserForm();
$UserForm->bind($mydata);
$AccountNumber = new AccountNumberForm();
$UserPasswordForm = new UserPasswordForm();
return new ViewModel
(array( 'userForm' => $UserForm,
'accountForm' => $AccountNumber,
'passwordForm' => $UserPasswordForm
));
}