Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/02/2012, 13:49
david1019
 
Fecha de Ingreso: febrero-2012
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Zend Framework

yo estoy combinando Ext_js con zend_framework por lo cual el controller de zend me quedaría algo así.


<?php

class Paramadmin_IndexController extends Zend_Controller_Action
{

public function init()
{
/* Initialize action controller here */
}

public function indexAction()
{
// action body
}

public function getrulesAction()
{
$start = $this->getRequest()->getParam('start');
$limit = $this->getRequest()->getParam('limit');

$mRules = new Paramadmin_Model_Rules();

//$data = $mRules->getrules($start, $limit);

$msg = 1;
if(is_array($data)){
$success = true;
}else{
$msg = 'Error al consultar los datos';
$success = false;
// $data = array();

}

$response = array(
'success' => $success,
'msg' => $msg,
'data' => $data,
'total' => $data

);


$this->_helper->json->sendJson($response);

}



}

en ese controlador tengo una variable que es $mRules = new Paramadmin_Model_Rules(); la cual creeria yop que es la clase, el codigo dentro de esta es

<?php

class Paramadmin_Model_Rules extends Zend_Db_Adapter_Abstract
{
protected $_name = 'rule';
protected $_primary = 'idrule';

public function getrules($start = 0,$limit = 0){

$data = array();
$limit = ($limit != 0)?'LIMIT '.$start.', '.$limit:'';

$sql = sprintf("SELECT rulename, ruledesc FROM rule",$limit);

$db = $this->getDefaultAdapter();
$stmt = $db->query($sql);
$data = $stmt->fetchAll();

$sql = 'SELECT FOUND_ROWS()';
$stmt = $db->query($sql);
$total = $stmt->fetchColumn();


$result = array(
'data' => $data,
'total' => $total
);


return $data;
}
}



?>

no se si sea de ayuda pero aparte del normal MVC que crea zend yo cree una carpeta modules y ahí dentro esta el controlador y el modelo que son las clases anteriores.

Lo que me dices de Mydb si no estoy mal no es el protected function _initMyDb() del bootstrap que esta intentando conectarse a las bases de datos?...

el store si te sirve que hago en js es el siguiente.

Ext.define('Hi.paramadmin.store.SRule',{
extend: 'Ext.data.Store',
requires: ['Hi.paramadmin.model.MRule'],
model: 'Hi.paramadmin.model.MRule',
proxy: {
type: 'ajax',
method: 'POST',
url: 'paramadmin/Index/getrules',
reader: {
type: 'json',
totalProperty: 'total',
root: 'data'
}
}
});