PASO DE VARIABLES HELP

edited noviembre 2010 in Dudas/Problemas
explico loas imagenes adjuntadas
el primera imagen pertenece a vistas_controller.php y a la vista index.phtml
donde con el link mando la variable de esta manera
<td><?= link_to('visitas/adicionar/'.$visitas->id, $visitas->his_clinica ) ?></td>

la seunda imagen es cuando envio la variable desde la vista listar.phtml que pertenece al controlador buscar_controller.php
donde hago la busqueda de pacientes y me desplieagga todos los pacientes encontrados y de donde hago el link_to para direccionar al formulario donde quiero qie rescate la variable en uno de los campos y lo hago de esta manera y similar al anterior

<td><?= link_to('visitas/adicionar/'.$visitas->id, $visitas->his_clinica ) ?></td>

pero no me pasa la variable como se muestra en el barra del explorador y en el campo del formulario me da el error

Notice: Trying to get property of non-object in C:\AppServ\www\Copia\apps\default\views\visitas\adicionar.phtml on line 16
como se muesta en la imagen


soy nueva en esto por favor explicacion paso a pasito para esta kumbia



alguien q me pueda ayudar estoy desesperada
ya hice la relacion de las tablas con los modelos

Comentarios

  • edited 10:11
    1. No hay imágenes adjuntas
    2. Déjanos ver el código del controller

    Estoy atento para ayudar
    saludos!!
  • muchas gracias por responder
    este es mi codigo
    visitas_controller.php
    &lt;?php
    
    /**
     * La clase Posts sirve para el mantenimiento de la información
     * de posts
     *
     */
    	class VisitasController extends ApplicationController {
    		
    		
    			
    
    		public $template = &quot;posts&quot;;	
    		
    		public $scaffold = true;
    
    		/**
    		 * El filtro se ejecuta antes de cualquier accion
    		 * en productos y valida si hay un usuario autenticado
    		 *
    		 * @return null
    		 */
    		/*public function before_filter(){
    			if(!Auth&#58;&#58;is_valid()){
    				$this-&gt;route_to(&quot;controller&#58; admin&quot;);
    				return false;
    			}
    		}	*/
    
    		
    		/**
    		 * Acción por defecto del controlador
    		 *
    		 */
    		public function index(){
    						
    		
    		}
    		
    		
    		/**
    		 * Adiciona un Post
    		 *
    		 * @return null
    		 */
    		public function adicionar($id){
    			$this-&gt;visitas = $this-&gt;Visitas-&gt;find($id);
    			//Si hay algo en title
    			if($this-&gt;request('his_clinica')){
    				//Creo una nueva instancia de Posts para el nuevo registro
    						
    						
    				$visitas = new Visitas();
    				$this-&gt;Visitas-&gt;find($id);
    				//$visitas-&gt;his_clinica = $this-&gt;request('his_clinica');
    				$this-&gt;Visitas-&gt;his_clinica = $this-&gt;request('his_clinica');
    			   	$visitas-&gt;fecha = $this-&gt;request('fecha');
    				$visitas-&gt;hora2 = $this-&gt;request('hora2');
    				$visitas-&gt;responsible = $this-&gt;request('responsible');
    				$visitas-&gt;observacion = $this-&gt;request('observacion');
    				//Valido si Crea el registro
    				if($visitas-&gt;create()){
    					Flash&#58;&#58;success('Se guardo el registro bien');
    					//Me paso a posts/index
    					return $this-&gt;route_to('controller&#58; visitas', 'action&#58; index');
    				} else {
    					Flash&#58;&#58;error('No se pudo guardar el registro');
    				}
    				
    			}
    			
    		}
    		
    		/**
    		 * Consulta la información de un id en particular
    		 *
    		 * @param integer $id
    		 */
    		public function consultar($id){
    			
    			/**
    			 * Consulto el Posts cuyo id = $id y devuelvo el objeto
    			 * en $this-&gt;post que luego aparece como $post
    			 * en la vista views/posts/consultar&#46;phtml
    			 */
    			$this-&gt;visitas = $this-&gt;Visitas-&gt;find($id);
    					
    		}
    		
    		/**
    		 * Modifica la información de un Post
    		 * 
    		 * $id es el id del post que va ser modificado
    		 *
    		 * @param integer $id
    		 * @return null
    		 */
    		public function modificar($id){
    						
    			if($this-&gt;request('his_clinica')){
    				//Consulto el registro cuyo id = $id
    				$this-&gt;Visitas-&gt;find($id);
    				//Cambio los valores del registro por los que vienen del formulario
    				$this-&gt;Visitas-&gt;his_clinica = $this-&gt;request('his_clinica');
    				$this-&gt;Visitas-&gt;fecha = $this-&gt;request('fecha');
    				$this-&gt;Visitas-&gt;hora2 = $this-&gt;request('hora2');
    				$this-&gt;Visitas-&gt;responsible = $this-&gt;request('responsible');
    				$this-&gt;Visitas-&gt;observacion = $this-&gt;request('observacion');
    							
    				//Actualizo el registro
    				if($this-&gt;Visitas-&gt;update()){
    					Flash&#58;&#58;success('Se guardo el registro bien');
    					return $this-&gt;route_to('controller&#58; visitas', 'action&#58; index');
    				} else {
    					Flash&#58;&#58;error('No se pudo guardar el registro');
    				}
    			}
    			
    			/**
    			 * Consulto el Post cuyo id = $id y devuelvo el objeto
    			 * en $this-&gt;post que luego aparece como $post
    			 * en la vista views/posts/modificar&#46;phtml
    			 */
    			$this-&gt;visitas = $this-&gt;Visitas-&gt;find($id);
    			
    		}
    		
    		
    		/**
    		 * Borra un post mediante su $id
    		 *
    		 * @param integer $id
    		 * @return null
    		 */
    		public function borrar($id){
    			if($this-&gt;Visitas-&gt;delete($id)){
    				Flash&#58;&#58;success('Se borr&amp;oacute; el registro bien');
    				//Me paso a posts/index
    				return $this-&gt;route_to('controller&#58; visitas', 'action&#58; index');
    			} else {
    				Flash&#58;&#58;error('No se pudo borrar el registro');
    			}			
    		}
    		
    


    buscar_controller.php
    &lt;?php
    			
    	class BuscarController extends ApplicationController {
    	
    		
    		public $template = &quot;posts&quot;;			
    		
    	
    		
    		function index(){
    			$this-&gt;redirect('visitas/adicionar', 2);
    		
    		}
    		
    				
    		
    		
    		
    
    		private $_per_page = 7;
    /**
    * Formulario de busqueda
    **/
    	public function Buscar() {
    		
    		
    $this-&gt;nullify('page', 'conditions');
    }
    /**
    * Paginador
    **/
    	public function lista($page='') {
    /**
    * Cuando se efectua la busqueda por primera vez
    **/
    if($this-&gt;has_post('paciente')) {
    $paciente = $this-&gt;post('paciente', 'trim', 'addslashes');
    if($paciente&#91;'nombres'&#93;) {
    $this-&gt;conditions = &quot; nombres LIKE '%{$paciente&#91;'nombres'&#93;}%' &quot;;
    }
    /**
    * Paginador con condiciones o sin condiciones
    **/
    if(isset($this-&gt;conditions) &amp;&amp; $this-&gt;conditions) {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate($this-&gt;conditions, &quot;per_page&#58; $this-&gt;_per_page&quot;, 'page&#58; 1');
    } else {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate(&quot;per_page&#58; $this-&gt;_per_page&quot;,'page&#58; 1');
    }
    } elseif($page='next' &amp;&amp; isset($this-&gt;page) &amp;&amp; $this-&gt;page-&gt;next) {
    /**
    * Paginador de pagina siguiente
    **/
    if(isset($this-&gt;conditions) &amp;&amp; $this-&gt;conditions) {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate($this-&gt;conditions, &quot;per_page&#58;$this-&gt;_per_page&quot;, &quot;page&#58; {$this-&gt;page-&gt;next}&quot;);
    } else {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate(&quot;per_page&#58; $this-&gt;_per_page&quot;,&quot;page&#58; {$this-&gt;page-&gt;next}&quot;);
    }
    
    } elseif($page='prev' &amp;&amp; isset($this-&gt;page) &amp;&amp; $this-&gt;page-&gt;prev) {
    /**
    * Paginador de pagina anterior
    **/
    if(isset($this-&gt;conditions) &amp;&amp; $this-&gt;conditions) {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate($this-&gt;conditions, &quot;per_page&#58;$this-&gt;_per_page&quot;, &quot;page&#58; {$this-&gt;page-&gt;prev}&quot;);
    } else {
    $this-&gt;page = $this-&gt;Paciente-&gt;paginate(&quot;per_page&#58; $this-&gt;_per_page&quot;,&quot;page&#58; {$this-&gt;page-&gt;prev}&quot;);
    }
    }
    }
    }
    

    ahora las vistas
    visitas/index.phtml
    &lt;? content() ?&gt;
    
    &lt;h1&gt;Lista de Pacientes en Espera&lt;/h1&gt;
    
    &lt;div&gt;
    &lt;?= link_to('visitas/adicionar', 'Nuevo Visita') ?&gt; / 
    &lt;?= link_to('buscar/buscar', 'Buscar Paciente') ?&gt; /
    
    &lt;/div&gt;
    &lt;br&gt;
    
    &lt;? if($Visitas-&gt;count()){ ?&gt;
    &lt;table cellspacing='0' cellpadding='2' border='1' style='border&#58; 1px solid #CFCFCF'&gt;
    	&lt;tr&gt;
    		&lt;th&gt;Id&lt;/th&gt;
    		&lt;th&gt;His&#46; Cli&#46;&lt;/th&gt;
    		&lt;th&gt;Fecha&lt;/th&gt;	
    		&lt;th&gt;Hora&lt;/th&gt;	
    		&lt;th&gt;Responsable&lt;/th&gt;
    		&lt;th&gt;Observacion&lt;/th&gt;		
    		&lt;th&gt;&amp;nbsp;&lt;/th&gt;
    		&lt;th&gt;&amp;nbsp;&lt;/th&gt;
    		&lt;th&gt;&amp;nbsp;&lt;/th&gt;
    	&lt;/tr&gt;
    
    &lt;? foreach($Visitas-&gt;find('order&#58; hora2') as $visitas)&#58; ?&gt;
    
    &lt;? tr_color('#F0FAFF', '#FFFFFF') ?&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;id ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?//= link_to('visitas/consultar/'&#46;$visitas-&gt;id, $visitas-&gt;his_clinica) ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= link_to('visitas/adicionar/'&#46;$visitas-&gt;id, $visitas-&gt;his_clinica) ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;fecha ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;hora2 ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;responsible ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;observacion ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= link_to('visitas/modificar/'&#46;$visitas-&gt;id, 'Modificar') ?&gt;&lt;/td&gt;
    	
    	&lt;td&gt;&lt;?= link_to('visitas/adicionar/'&#46;$visitas-&gt;id, $visitas-&gt;his_clinica ) ?&gt;&lt;/td&gt;
    	&lt;td&gt;
    		&lt;b&gt;&lt;?= link_to('visitas/borrar/'&#46;$visitas-&gt;id, 
    						img_tag('delete&#46;gif', 'border&#58; 0', 'title&#58; Eliminar registro?'),
    	                   'confirm&#58; Desea borrar el Post?') ?&gt;
    	    &lt;/b&gt;
    	&lt;/td&gt;
    &lt;/tr&gt;
    
    &lt;? endforeach;?&gt;
    &lt;/table&gt;
    
    &lt;? } else { print &quot;No hay visita&quot;; } ?&gt;
    	
    &lt;br&gt;
    &lt;div&gt;
    &lt;?= link_to('visitas/adicionar', 'Nuevo Post') ?&gt; / 
    &lt;?= link_to('datos/index', 'Cambiar Datos') ?&gt; /
    
    &lt;/div&gt;
    

    buscar/lista.phtml
    &lt;table cellspacing='0' cellpadding='2' border='1' style='border&#58; 1px solid #CFCFCF'&gt;
    	&lt;tr&gt;
    		&lt;th&gt;id&lt;/th&gt;
    		&lt;th&gt;His&#46; Cli&lt;/th&gt;
    		&lt;th&gt;Nombre&lt;/th&gt;	
    		&lt;th&gt;ci&lt;/th&gt;
    		&lt;th&gt;&amp;nbsp;&lt;/th&gt;
    	&lt;/tr&gt;
    
    &lt;? foreach($page-&gt;items as $visitas)&#58; ?&gt;
    
    &lt;? tr_color('#F0FAFF', '#FFFFFF') ?&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;id ?&gt;&lt;/td&gt;
    	&lt;!--&lt;td&gt;&lt;?= link_to('visitas/consultar/'&#46;$visitas-&gt;id, $visitas-&gt;his_clinica) ?&gt;&lt;/td&gt;!--&gt;
    	&lt;td&gt;&lt;?= link_to('visitas/consultar/'&#46;$visitas-&gt;his_clinica) ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;nombres ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= $visitas-&gt;ci ?&gt;&lt;/td&gt;
    	&lt;td&gt;&lt;?= link_to('visitas/adicionar/'&#46;$visitas-&gt;id, $visitas-&gt;his_clinica) ?&gt;&lt;/td&gt;
    	
    		
    	    &lt;/b&gt;
    	&lt;/td&gt;
    &lt;/tr&gt;
    
    &lt;? endforeach;?&gt;
    &lt;/table&gt;
    
    en este ultimo hago el listado de busqueda en la tabla pacientes donde agarro el id y la his_clinica
  • edited 10:11
    a juzgar por el código veo que estas usando la versión 0.47 o 0.5
    haces uso de scaffold para los formularios

    yo no alcance a usar esas versiones de kumbiaphp, por lo cual no puedo ayudar en este tema, lo que si te recomiendo es que uses la nueva versión (Esta disponible desde hace mas de un año) beta1 spirit

    Documentación:
    <!-- m --><a class="postlink" href="http://wiki.kumbiaphp.com/Indice">http://wiki.kumbiaphp.com/Indice</a><!-- m -->

    Algunos tutoriales:
    <!-- m --><a class="postlink" href="http://wiki.kumbiaphp.com/Categoría:Tutoriales_KumbiaPHP&quot;&gt;http://wiki.kumbiaphp.com/Categorí ... _KumbiaPHP</a><!-- m -->

    Se muy bien que el uso de el scaffold de la versión 0.5 no es aconsejable para los desarrollos

    ¿Es una aplicación que hasta ahora se esta implementando? si es así mejor que empieces con la ultima versión de kumbiaphp, si ya esta y solo requiere retoques cuéntame y buscamos una mejor solución

    Saludos!!
Sign In or Register to comment.