Estoy siguiendo el libro y no me funciona el set_combo_dynamic.
tengo:
en mysql:
-- phpMyAdmin SQL Dump
-- version 2.9.1.1-Debian-2ubuntu1.1
-- <!-- m --><a class="postlink" href="
http://www.phpmyadmin.net">http://www.phpmyadmin.net</a><!-- m -->
--
-- Servidor: localhost
-- Tiempo de generación: 26-01-2008 a las 20:40:39
-- Versión del servidor: 5.0.38
-- Versión de PHP: 5.2.1
--
-- Base de datos: `EjemplosK`
--
--
--
-- Estructura de tabla para la tabla `ciudad`
--
CREATE TABLE `ciudad` (
`id` int(11) NOT NULL auto_increment,
`nombre_ciudad` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Volcar la base de datos para la tabla `ciudad`
--
INSERT INTO `ciudad` (`id`, `nombre_ciudad`) VALUES
(1, 'montevideo'),
(2, 'canelones'),
(3, 'maldonado'),
(4, 'rocha');
--
--
-- Estructura de tabla para la tabla `clientes`
--
CREATE TABLE `clientes` (
`id` int(11) NOT NULL auto_increment,
`nombre` varchar(50) NOT NULL,
`idciudad` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
En Kumbia:
/var/www/kumbia/models/clientes.php:
<?php
class Clientes extends ActiveRecord {
}
?>
/var/www/kumbia/models/ciudad.php:
<?php
class Ciudad extends ActiveRecord {
}
?>
/var/www/kumbia/controllers/clientescontroller.php:
<?php
class ClientesController extends StandardForm {
public $scaffold = true;
public function __construct(){
$this->set_combo_dynamic('idciudad','ciudad','nombre_ciudad');
}
}
?>
/var/www/kumbia/controllers/ciudadcontroller.php:
?php
class CiudadController extends StandardForm {
}
?>
Cuando en el navegador konqueror o firefox ejecuto:
<!-- m --><a class="postlink" href="
http://localhost/kumbia/clientes">http://localhost/kumbia/clientes</a><!-- m -->
obtengo:
KumbiaDBException: Unknown column 'ciudad.idciudad' in 'field list' al ejecutar 'select ciudad.idciudad, nombre_ciudad from ciudad order by idciudad'
Error Code: 1054
En el archivo /var/www/kumbia/forms/db/adapters/mysql.php en la línea: 135
#0 /var/www/kumbia/forms/generator/components.php(287): db->query('select ciudad.i...')
#1 /var/www/kumbia/forms/generator/standard.build.php(161): Component::build_standard_combo(Array, 'idciudad')
#2 /var/www/kumbia/forms/generator/main.php(643): Standard_Generator::build_form_standard(Array)
#3 /var/www/kumbia/forms/controller/standard_form_controller.php(822): Generator::build_form(Array, true)
#4 [internal function]: StandardForm->index()
#5 /var/www/kumbia/kumbia.php(201): call_user_func_array(Array, Array)
#6 /var/www/kumbia/public/index.php(76): Kumbia::main()
#7 {main}
Estoy escribiendo exactamente lo que dice el libro y no obtengo el resultado esperado. Alguien puede darme una mano?
Hasta el use_helper venia bien.
Comentarios
id_ciudad en vez de idciudad
O también se puede de las dos formas ???
tabla_id
ciudad_id
he intentado hacerlo cambiando idciudad por ciudad_id tanto en tablas como en use_combo_dynamic y no me funciona tampoco... sigue dando el error:
Unknown column 'ciudad_id' in 'field list' al ejecutar 'select ciudad.nombre_ciudad, ciudad_id from ciudad order by nombre_ciudad'
creo que el error está en que ese sql no tiene mucho sentido (ciudad_id pertenece a clientes y no a ciudad...) aunque yo no se demasiado de sql...
¿como se añade entonces un combo dinamico?, lo digo por que tampoco he conseguido hacerlo funcionar como viene en el screencast de tienda1...
una ayuda?
Éxitos...
<? foreach($Reg as $Reg): ?>
<option value='<?= $Reg->id ?>'><?= $Reg->nombre?>
<? endforeach; ?>
para el registro que relaciona mis dos tablas en las vistas, no puedo usar el generador de formularios para el resto de campos, y para que me genere los actualizar, buscar, borrar y demás. Por lo que tendría que hacer a mano todo eso, ¿verdad?
En el screencast tienda aparece que directamente genera estos formularios con combo y todo, pero no he conseguido hacerlo funcionar de una forma tan facil como ahí aparece... eso es para cuando se acabe la version 0.5? o es que estoy haciendo algo mal? (yo ahora estoy usando 0.47)
Muchas gracias por la ayuda!
Éxitos...
No se si te estas confundiendo con los helpers, ya que no se esta viloando ninguna convencion como asi lo indica el libro: "Con esta función podremos crear dinamicamente (sin seguir la convención campo_id del StandardForm) lo mismo que use_helper($campo)".
En definitiva: ¿esta bien o no el ejemplo del libro?
Seria bueno para aclarar un poco mas la cosa, se pusiera un ejemplo donde se usara el cuarto parametro column_relation.
Saludos y gracias
Daniel
así textualmente por lo que me funciona en el momento de llamarla con
por otra parte no me funciona en absoluto usar el parámetro para column_relation, bueno, no sé si está arreglado en la versión 0.5, por ahora estoy en 0.47
el ejemplo lo modificaría así:
ya con eso me funciona ok
$this->set_combo_dynamic("idciudad","ciudad","nombre_ciudad");
las tablas en mysql:
y la instruccion al detalle...
//set_combo_dynamic($campo, $tabla, $campoDetalle, “column_relation:$campo”)
Con esto se crea una lista con los nombres guardados en Grupos de usuario (registros) y los refencia por id para que se puedan guardar la tabla Usuarios
todo funciona bien, excepto por una cosa. <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> .cuando se solicita un reporte y no se selecciona ningun campo para ordenar por el por defecto asume que es id..pero como se manejan dos tablas implicitas entonces se crea una ambigüedad
tengo claro que toca revisar el archivo \forms\report\functions.php
pero todavia no visto la forma de hacerlo correctamente...espero cachaarlo mas tarde....de todos una manita no me caeria mal... <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
...espero qeu les pueda servir a unos cuantos....un abrazo desde la frontera <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Primero que todo el problema se debia que tenia el campo id como oculto en el formulario y por tanto no lo tomaba entonces hice la modificacion en la linea 149 de /forms/report/functions.php
antes
despues
cuando les pase se deran cuenta de la nota!!!!
suerte a todos
Esto sera incluido en la nueva Docs de la versión 0.5 asi que la recomendación es que hagan uso de esta versión! que esta prevista ser publicada esta misma semana o bueno lo que queda de semana
Gracias!