November 14th, 2011 Category: Curso Zend Framework
32 Comments »

En el video de hoy voy a mostrarles como hacer un join con otras tablas, en nuestro caso tenemos la tabla posts, y la tabla categories, vamos a tratar de crear posts que tengan una categoria asociada y mostrar los post a partir de la categoria por la que filtramos.

Para esto vamos a usar un Join para mostrar los nombres de las categorias a las que esta asociada una noticia, y un helper de la vista para mostrar el listado de categorias dentro de nuestro layout.

Aca les dejo el video

Como material extra pueden leer Zend_Db_Select aca van encontrar todo lo referente a armar querys con Zend Framework

Ver todos los capitulos del curso


Invitame una Cerverza


Comentar


32 Responses

ismael33 2011-11-15 07:00:10
Hola Pablo,

estoy tratando de poner todo a punto para empezar un proyecto con ZF, y estoy mirando como utilizar control de versiones.

Cuáles son los pasos a seguir?

Intuyo que son: instalar servidor, subversion, crear proyecto en el servidor svn, crear un proyecto con el mismo nombre en netbeans utilizando el script de ZF.

Estoy en lo cierto? Se me olvida algo?

Gracias Pablo por tu gran trabajo,
ismael

Pablo Morales 2011-11-15 08:41:21
basicamente son esos. Pero te diria que leas mas al respecto, y te recomieno en vez de subversion empezar con git,

Sino te importa que el proyecto sea publlico, hacelo con github.com

ahi te dan todas las herraminetas que necesitas

ismael33 2011-11-20 19:49:45
Sí, al final he optado por git, gracias por el consejo.

Por otra parte, ando algo confuso acerca de Zend-Server. Qué es exactamente? Es como instalar apache, php, xDebuger, phpMyAdmin, ...? Es un todo en uno?

Es mejor instalar MySql-server, apache, PHP, ... y luego instalar Zend-Framework?
o por el contrario
Es mejor instalar Zend-Server?

Pablo Morales 2011-11-20 21:50:28
Si Ismael es un todo en uno. Bajate la Comunnity edition la otra es paga :D

Instala Zend Server y ya tenes Zend Framework en el include path :D

Steven 2011-11-21 15:54:56
Hola Pablo,

Pronto vas a subir la ultima version a github?

Saludos!

Steven S.

stvn20@gmail.com 2011-11-21 17:26:29
Hola Pablo,

Será posible que puedas enseñarnos como manejar post bilingües tambien?

Saludos!


Steven S.

ismael33 2011-11-21 19:12:02
Pablo, poner el Zend Framework en el include path es equivalente a crear un enlace simbólico en nuestro proyecto a la carpeta Zend como explicaste en el primer vídeo?

Steven 2011-11-21 20:12:47
Hola Pablo,

Como obtengo el valor de la variable de $session->locale?

Quiero hacerle un echo desde el IndexController? Como lo hago?

Saludos!

Pablo Morales 2011-11-21 20:21:34
@steven colgue en 5 la tenes en github. Con respecto a los post billingues, tenes que hacer que en el mismo formulario se ingrese doble titulo y doble descripcion. Cada uno para cada lenguaje, e ingresas dos post duplicados uno con id de idioma espaniol y el otro en ingles.

La variable $session->locale la obtenes haciend

$session = new Zend_Session_Namespace('news123');


@Ismael, si es lo mismo :D

Tomas 2011-11-24 08:23:15
Hola Pablo.
Lo primero es agradecerte los video tutoriales.
me han servido de mucha ayuda para empezar con zend framework y empezar a dar forma a un proyecto.

Lo segundo es preguntarte una duda.
el foreach para sacar el listado de categorias lo realizas directamente en el layout.

Mi pregunta es que si se podria realizar el foreach en un phtml en /view y desde el layout llamar o referenciar a ese phtml? y si se puede realizar, tambien agradeceria que me comentases un poco como realizar esa llamada desde el layout.
un saludo y de nuevo muchas gracias.

Pablo Morales 2011-11-24 12:10:43
Si claro. Vos podes hacer lo mismo tanto en view/script/zaraza como en el layout.

Podes crear un helper que te lo renderee


Tambien podes usar la el helper render para incluir algun archivo de la vista.

por ejemplo desde tu layout hacer

render('category/sidebar.list.phtml' ?>

donde estoy esta incluyendo el archivo que esta en application/views/scripts/category/sidebar.list.phtml

Lo ideal seria que llames a un helper.

ismael33 2011-11-30 11:23:00
Pablo, hay alguna manera para que netbeans cree controllers como se hace en Zend Studio donde hay una opción en New -> Zend FrameworkItem? o solo se puede hacer de forma manual?

Pablo Morales 2011-11-30 15:28:15
Si , aca te explican como

http://netbeans.org/kb/docs/php/zend-framework-screencast.html

ismael33 2011-12-01 08:05:58
ah ok, muy buen vídeo. Gracias.

Otra cosa que veo mucho, y no sé exactamente qué es, son los providers y manifests.

Podrías explicar por favor un poco a qué se refieren éstos términos?

fredy 2011-12-11 13:10:59
Hola Pablo Morales, los tutoriales que hiciste los tome muy encuenta en mi proyecto de tesis que estoy desarrollando. la verdad me sirvieron mucho. tienes correo en especifico para poder enviarte la documentacion y enviarte el codigo para que me ayudes a terminarlo. el trabajo solo seria textear y como exportar a pdf con fpdf. El sistema que estoy desarrollando es para "El registro de Accidentes de Transito y Educacion Vial Web."
de Antemano Gracias por los Videos Tutoriales.

fredyx007@gmail.com 2011-12-11 13:20:49
Una Pregunta como haga para llamar una libreria adentro del controlador x. segun vi por internet es require_once='../library/fpdf/fpdf.php';
ya lo intente con estoy y no me funciono o como debe ser la llamada a la libria fpdf que se encuentra dentro de la carpetar library.
Estare esperando tu Respuesta Pablo. Me despido con un Fuerte Abrazo.

Pablo Morales 2011-12-11 14:10:17
@fredy

Zend Framework trae su propio componente para pdf, pero igual si queres incluir un archivo podes hacerlo asi

require_once APPLICATION_PATH . '/../library/fpdf/fpdf.php

Acordate que APPLICATION_PATH es equivalente a la ruta de tu proyecto por ejemplo

/var/www/html/miproyecto + la carpeta application


/var/www/html/miproyecto/application

fredyx007@gmail.com 2011-12-12 14:59:27
te cuento ya me salio la impresion del pdf. lo unico que me falta saber es el siguiente:

tengo la clase asi:
clase (){
function indexAction(){
$hola=1
}
}
y quiero sacarlo la variable $hola afuera de la clase. como hago?
o en otras palabras como hago para pasar una parametro por post o Get a una Clase normal. no asi a las acciones desde la vista de zend.
gracias por ayuda me sirvio de mucho.

Pablo Morales 2011-12-12 19:54:16
Tenes que usar Zend_Registry

POdes usar Zend_Registry::set('mistorage', $mivariable);


y del otro lado hacer


$mivariable = Zend_Registry::get('mistorage');

edgard26 2011-12-19 14:35:25
buenas amigo una consulta soy parte de un equipo de desarrollo web en php de una universidad aqui en peru quisiera saber si puedes capacitarnos en zendframework a todo nuestro equipo.

Pablo Morales 2011-12-19 19:54:51
Edgard agregame a gtalk y hablamos


pablofmorales at gmail.com


Maniana tenemos el hang out, si quieren se anotan a las 21hs Argentina

https://plus.google.com/113488230260400531922

Daniel 2011-12-19 21:10:33
hola tengo una tabla direcciones que tiene un campo id, calle_principal, calle secundaria y numero_casa, ahora en mi form necesito recuperar estos datos
$this->addElement('select','id_direccion',array('label'=>'Calle Principal:','required'=>true));
con esto recupero la calle principal como hago para sacar el campo calle_secundaria y el numero_casa porque al repetir la misma linea se monta y no me salen ambos en el formulario por ayuden es de urge necesito terminar mi tesis jeje

Daniel 2011-12-19 22:09:41
$this->addElement('submit','GUARDAR',array());
DENTRO DEL ARRAY DEL BOTON COMO PUEDO DARLE COLOR UN BORDE Y DEMAS COSAS

Fran 2011-12-21 12:38:35
Muy buenos los screencast, enhorabuena por ellos, son de muchas utilidad para los principiantes (como yo).

Roque Z. 2011-12-22 14:35:48
Hola Maestro Morales, pregunta s/Zend Paginator. He agregado la posibilidad de usar un LIKE en mi query: Supongamos una tabla con nombres. Le mando un LIKE "vacio" (solo con el %) y me lista todo de la A a la Z. Ahora le pido que traiga todo lo que empieza con "T" (p.ej. t%). Supongamos que el rowset resultante muestra en la primer pagina 1-15/35 me indica que hay 2 paginas, y me muestra perfectamente mi primer pagina. Al pedirle la segunda pagina, en lugar de mostrarme el resto del rowset (p.ej. 16 a 31) me devuelve A a Z, como si le hubiese pedido LIKE "%" (sin la "t", sin el subset).
Alguna idea para probar?
Saludos. Gracias.
Roque Z.

fredyx007@gmail.com 2011-12-26 18:55:47
Hola Pablo Morales, Feliz Navidad.
mi pregunta es muy corta.
¿Como hago para trabajar con dos base de datos en una Aplicacion en zend framework?

pablofmorales@gmail.com 2011-12-26 21:10:51
@Roque seguramente cuando le das click en siguiente o en pagina 2 no le estas pasando los parametros de la busqueda chequea que te lo pase por url y no mandes busquedas por post. Siempre por get


@fredy deberias instanciar una conexion con Zend_Db, podes tener una para la db default donde usas el application.ini y la otra cada vez que la necesites podes conectarte usando Zend_Db aca te explican como

http://framework.zend.com/manual/en/zend.db.adapter.html

Heraud 2011-12-28 23:32:45
Super didáctico, Muchas gracias pablo. Un favor, cómo aria un sistema de login único en zend framework. Me explico, lo que quiero hacer es que para entrar al sistema quiero hacer un login, algo así como phpmyadmin para poder realizar acciones. Básicamente esto quero aplicarlo al sistema para administrar un Hotel en que lo hice zend, de ante mano muchas gracias por todo.

Y otra mas que utilizas para grabar el escritorio en ubuntu y tu blog está hecho en zend o no se se parce al diseño que lo haces en VT Gracias.

pablofmorales@gmail.com 2011-12-29 19:22:08
BUenas Heraud,

Para grabar los videos uso ffmpeg desde la consola

y Seguramente el proximo post sea de Registro y login.

Saludos

fredyx007@gmail.com 2012-01-05 18:37:02
Hola Pablo Morales Una consulta, usted puso en su aplicacion.ini la siguiente linea de codigo en caso de que la aplicacion no sea modular.

resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/views/helpers"

pero si en caso fuer modular tendria que ser de la siguiente manera?

resources.view.helperPath.Application_Module_Admin_View_Helper = APPLICATION_PATH "/modules/admin/views/helpers"

o como tendria que ser? ya que yo estoy trabajando con modulos dentro de application

fredyx007@gmail.com 2012-01-05 18:40:21
una cosa mas como puedo hacer el famoso (Leer Mas..) asi como en joomla. como lo podria hacer en zend. busque mucho no encontre un ejemplo. espero me ayudes. saludos coordiales desde Yacuiba - Bolivia

fredyx007@gmail.com 2012-01-05 18:40:21 2012-02-19 08:34:37
ya le hice el leer mas. gracias de todos modos, haber cuando hay nuevos tutoriales. saludos cooriales a todos.