Задать вопрос
@esvlad
Веб-разработчик

Что не так при подключении к БД в ZendFramewor 2?

Собственно весь код, в итоге, при выводе во вьюхе пишу var_dump($this->news) получаю NULL, т.е. запрос вернул NULL, БД настроена, скрипты вроде тоже, что не так не пойму.

Код в global.php
return array(
   'db' => array(
		'driver'	=> 'Pdo',
		'dsn'		=> 'mysql:dbname=test_task;host=localhost',
		'driver_options' => array(
			PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'
		),
	),
	'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);


Код в local.php
return array(
   'db' => array(
		'username'	=> 'root',
		'password'	=> '',
	),
);


Код контроллера
public function indexAction()
    {
		$adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
		$news = new NewsTable($adapter);
		return array(
		 'news' => $news->fetchAll(),
		);
    }


Код модели
...
use Zend\Db\Sql\Sql;
class NewsTable
{
	private $sql;
	public function __construct($adapter)
	{
		$this->sql = $adapter;
	}
	public function fetchAll()
    {
	$resultSet = $this->sql->query('SELECT * FROM news ORDER BY news_id');
		foreach($resultSet as $k=>$v){
			$res[$k]=$v;
		}
        return $res;
    }
...
}


п.с. Перепробовал уже кучу способов, только этот и этот подключаются, а второй даже работает, однако мне нужно работать через обычный SQL с несколькими таблицами, а второй вариант подключается только к одной.

п.с.с. Может кто знает, как можно ещё проще просто подключиться к БД и работать с ->query('ЗАПРОС'), только без доктрины либо орм.
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
$st = $this->sql->query('SELECT * FROM news ORDER BY news_id');
$resultSet = $st->execute();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы