Foro

Symfony y ExtJS

0
Hola, tengo un proyecto muy gande en symfony 1.4.9 con MySQL y quiero integrarlo con ExtJS, ya he logrado hacer algunas cosas, gracias a esta pagina, como listar datos en un Grid, pero mi primer problema es el siguiente: 1- Tengo dos tablas (persona - pais), con una relacion de uno a muchos, cuando listo en el grid los datos de la tabla persona en vez de mostrarme el pais al que pertenece una persona me muestra el ID del país al que pertenece, no el nombre del país. Cómo pudiera arrglar esto? para que me mostrara el nombre del pais y no el ID. 2- Como Guardo datos desde un formulario, ya que tambien quiero crear mis formularios de Symfony en ExtJS.. saludos y de ante mano les doy las gracias por cualquier ayuda que me puedan ofrecer..saludos..LUIS
0
Hola a todos, despues de unos cuantos días tratando de solucionar algo tan facíl pero que para muchos puede resultar un dolor de cabeza como para mi, he dado solución a mi propia interrogante, pues claro, con la ayuda de este gran foro y de Crysfel que me dió luz para nuevas ideas, pues se trata de como mostrar datos en un Grid creada en ExtJS integrado a Symfony desde mysql con dos tablas realcionadas. Por lo tanto quiero hacer este pequeño aporte, para que otros que lo neseciten lo tengan sin tener dolores de cabeza como los tube yo.
0
he tratado de subir los archivos pero no me deja, de todas maneras les pongo el código aquí mismo.....decirles que le agregue filtrados al grid......espero les sirva -----actions.class.php------ class filtergridActions extends sfActions { /** * Executes index action * * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { } // function que ejecuta la accion list public function executeList(sfWebRequest $request) { # data retrieved from the request $limit = $request->getParameter('limit', 15); $page = ($request->getParameter('start', 0)/$limit)+1; $dir = $request->getParameter('dir', 'ASC'); $column = strtolower($request->getParameter('sort', 'nombre')); # create query object $query = Doctrine_Query::create()->from('TestPersona c') ->innerJoin('c.TestPais'); # conditions for sorting if (Doctrine::getTable('TestPersona')->hasColumn($column)) { $query->orderBy(sprintf('c.%s %s', Doctrine::getTable('TestPersona')->getFieldName($column), $dir)); } # code resposible for filtering data foreach($request->getParameter('filter') as $filter) { # comparison condition if (isset($filter['data']['comparison'])) { switch($filter['data']['comparison']) { case 'eq': $comparison = '='; break; case 'lt': $comparison = ''; break; } } # switch 5 filter types switch($filter['data']['type']) { case 'boolean': $query->addWhere(sprintf('c.%s = ?', $filter['field']), $filter['data']['value']); break; case 'string': $query->addWhere(sprintf('c.%s LIKE ?', $filter['field']), '%'.$filter['data']['value'].'%'); break; case 'numeric': $query->addWhere(sprintf('c.%s %s ?', $filter['field'], $comparison), $filter['data']['value']); break; case 'list': $query->whereIn(sprintf('c.%s', $filter['field']), explode(',', $filter['data']['value'])); break; case 'date': $query->addWhere(sprintf('c.%s %s ?', $filter['field'], $comparison), date('Y-m-d', strtotime($filter['data']['value']))); break; default: break; } } # object responsible for paging $pager = new sfDoctrinePager('TestPersona', $limit); $pager->setQuery($query); $pager->setPage($page); $pager->init(); $result = array(); # format result array foreach($pager->getResults() as $country) { $result[] = $country->toArray(); //$result['test_persona']['test_pais'] = $country->toArray(); //$result[] = $country->toArray(); //$result['test_pais']['nombre']; // $result[] = $country->toArray(); //$pais_string[$country]['test_pais']; } # formatted data are returned to the grid return $this->renderText(json_encode(array( 'success' => true, 'total' => $pager->getNbResults(), 'data' => $result ))); } -----indexSuccess.php------ }
0
Ya he respondido tu mensaje en otro post, por favor solo define uno para evitar tener preguntas repetidas. Saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.