problemas con relaciones entre tablas

Estoy intentando obtener datos en una relación 1-N. Sigo los ejemplos del libro y hago:

models/paises.php
class Paises extends ActiveRecord{
 		 		
 		function __construct(){
 			$this->has_many("informacionpais");
 		}
 		
 	}

models/informacionpais.php
class Informacionpais extends ActiveRecord{
 		 		
 		function __construct(){
 			$this->belong_to("paises");
 		}
 		
 	}

paises_controller.php
class PaisesController extends ApplicationController {

 		function salvar(){
 			$Paises= New Paises();
 			$Paises->save_from_request();
 		}
 		
 		function lista(){
 			$this->Paises->find(2);
 			foreach($this->Paises->getInformacionpais() as $info){
 				$this->render_text($info->ruta);	
 			}
 		}
 	}

Cuando voy al navegador y escribo <!-- m --><a class="postlink" href="htp://localhost/Fisc/paises/lista">htp://localhost/Fisc/paises/lista</a><!-- m -->, me aparece el siguiente error:
 KumbiaException&#58; No existe el m?todo 'getInformacionpais' en ActiveRecord&#58;&#58;paises

En el archivo /home/s051aeac/public_html/Fisc/forms/db/active_record&#46;php en la l?nea&#58; 259

#0 &#91;internal function&#93;&#58; ActiveRecord-&gt;__call('getInformacionp&#46;&#46;&#46;', Array)
#1 /home/s051aeac/public_html/Fisc/controllers/paises_controller&#46;php(17)&#58; Paises-&gt;getInformacionpais()
#2 /home/s051aeac/public_html/Fisc/kumbia&#46;php(201)&#58; PaisesController-&gt;lista()
#3 /home/s051aeac/public_html/Fisc/public/index&#46;php(76)&#58; Kumbia&#58;&#58;main(Array, Array)
#4 {main}

Lo he intentado desde el controlador informacionpais_controller.php, sin usar el foreach, y de mil maneras más, y siempre me dice que no existe el método get(). ¿qué estoy haciendo mal? Uso la versión 0.47 de kumbia.

Comentarios

  • edited 11:31
    Creo que ya está, era un simple error de sintaxis, puse belog_to en vez de belongs_to

    Ahora lo que no consigo es mostrar la información <!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: --> a seguir investigando...
  • Ok pero te devuelve la información deseada?
  • edited 11:31
    Si, ahora si. Pero me he encontrado con otro problema. En la consulta creo un enlace para descargar unos archivos previamente subido a public/files. Pues bien, cuando hago click en el enlace no me aparece la opción de bajarme el archivo, sino que el sistema sigue el enlace y acaba saliendo el mensaje de error de que no encuentra el controlador "public".

    ¿cómo se puede arreglar esto?
  • Dime algo ese archivo que intentas descargar existe en public/file?
  • edited 11:31
    Si que existen los archivos. Te pongo el código:
    function lista(){
     			foreach($this-&gt;Paises-&gt;find() as $pais){
     				print &quot;&lt;li&gt;&quot;&#46;$pais-&gt;pais&#46;&quot;&lt;/li&gt;&lt;ul&gt;&quot;;
     				foreach($pais-&gt;getInformacionpais() as $info){
     					$ruta=$info-&gt;ruta;
     						$arch=explode(&quot;/&quot;,$ruta);
    						$arch=$arch&#91;2&#93;;	
     					print &quot;&lt;li&gt;&lt;a href='&quot;&#46;$ruta&#46;&quot;'&gt;&quot;&#46;$arch&#46;&quot;&lt;/a&gt;&lt;/li&gt;&quot;;
     				}
     				
     				print &quot;&lt;/ul&gt;&quot;;
     			}
     		}
    

    Y en la vista:
    &lt;ul&gt;
    &lt;? content() ?&gt;
    &lt;/ul&gt;
    

    Con lo que obtengo:
    España
        españa250208085453&#46;doc
        info final navarra 2006250208085528&#46;doc
    Ecuador
        ecuador240208122938&#46;doc
    Nigeria
    

    Donde el nombre de cada .doc es un enlace al archivo que quiero descargar.
  • edited 11:31
    Ahora funciona, no lo entiendo. He incluido como partial a _lista.phtml y ahora sí que funciona.

    Es muy raro...
  • edited 11:31
    Y ahora ha dejado de funcionar otra vez.. la verdad es que no lo entiendo...
  • Puedes enviarme ese código a mi correo, para revisarlo...
  • edited 11:31
    ok, te lo enviaré, gracias, pero ya mañana, que en hora españoalya es muy tarde y estoy que me caigo, jaja, gracias.
Sign In or Register to comment.