config/autoload/local.php
return array
(
'service_manager'=>array(
'factories'=>array(
'Zend\Db\Adapter'=>'Zend\Db\Adapter\AdapterServiceFactory',
),
),
'db'=>array(
'username'=>'root',
'password'=>'',
'driver'=>'Pdo',
'dsn'=>'mysql:dbname=pruebazend;host:localhost',
'driver_options'=>array(
PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \'utf8\''
),
),
);
---------------------------------------------------------------------------------------------------------
Creamos un nuevo controlador:
src/Application/Controler/BasedatosController.php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\Adapter\Adapter;
use Zend\Db\Sql\Sql;
class BasedatosController extends AbstractActionController {
public $dbAdapter;
public function indexAction() {
return new ViewModel();
}
// ***************************
public function resultAction() {
$this->dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter');
$sql = "select * from tablazend order by id desc";
$result = $this->dbAdapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
$datos = $result->toArray(); // toArray para q lo muestre más formateado
return(new ViewModel(
array(
"titulo"=> "Mi primera conexión zend a base datos usando result",
"datos" => $datos
)
));
}
// ***************************
public function sqlAction() { // Otra forma: lo mismo que el otro pero con SQL
$this->dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter');
$sql = new Sql($this->dbAdapter);
$select = $sql->select()
->from('tablazend')
->where(array('id'=>'2'))
->order('id desc');
$selectString = $sql->getSqlStringForSqlObject($select);
// echo $selectString;
$result = $this->dbAdapter->query($selectString, Adapter::QUERY_MODE_EXECUTE);
$datos = $result->toArray();
return(new ViewModel(
array(
"titulo"=> "Mi primera conexión zend a base datos usando SQL",
"datos" => $datos
)
));
}
}
--------------------------------------------------------------
Añadir el nuevo controlador a:
application/config/module.config.php:
....
'controllers' => array(
'invokables' => array(
'Application\Controller\Index' => 'Application\Controller\IndexController',
'Application\Controller\Formulario' => 'Application\Controller\FormularioController',
'Application\Controller\Basedatos' => 'Application\Controller\BasedatosController'
),
),
....
---------------------------------------------------------
Ahora las vistas para esos dos métodos:
view/application/basedatos/result.phtml
<h1><?php echo $this->titulo;?></h1>
<?php
foreach ($this->datos as $registro) {
echo "Id:".$registro["id"]."<br>";
echo "Nombre:".$registro["nombre"]."<br>";
echo "Email:".$registro["email"]."<hr>";
}
?>
view/application/basedatos/sql.phtml
<h1><?php echo $this->titulo;?></h1>
<?php
foreach ($this->datos as $registro) {
echo "Id:".$registro["id"]."<br>";
echo "Nombre:".$registro["nombre"]."<br>";
echo "Email:".$registro["email"]."<hr>";
}
?>
-------------------------------------------------
Para verlo:
http://localhost/zend/zendproyecto8LSG/public/application/basedatos/sql
http://localhost/zend/zendproyecto8LSG/public/application/basedatos/result
No hay comentarios:
Publicar un comentario