Yii Framework Forum: Accion Create Y Update Con Tablas Vinculadas - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Accion Create Y Update Con Tablas Vinculadas tablas vinculadas Rate Topic: -----

#1 User is offline   thomas Scheidig 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 13-June 12

Posted 21 September 2012 - 05:55 AM

Hola a todos, y gracias por adelantado por las respuestas!!

Mi pregunta es la siguente como puedo actualizar o "cargar el dato INDICE FORANEO persona_id" en una tabla hija
digamos que tengo una tabla "personas" y una tabla "beneficios" cuyo indice que vincula la tabla beneficios a personas es "persona_id", el CRUD me genero el FORM pero tengo que entrarlo a mano, pero yo necesito cargar ese dato en forma automatica, ya que ese dato ya lo tengo por parametro desde la pantalla anterior.
desde ya muchas gracias
0

#2 User is offline   Darril 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 51
  • Joined: 02-June 11

Posted 21 September 2012 - 03:56 PM

En el controlador de "beneficio", modifica la acción create (si es esa) para que se cree el modelo Beneficio con el "persona_id" que desees, así.

public function actionCreate() {
		$model = new Beneficio;
                $model->persona_id = '1'; //el parametro que mensionabas 

		if (isset($_POST['Beneficio'])) {
			$model->setAttributes($_POST['Beneficio']);

			if ($model->save()) {
				if (Yii::app()->getRequest()->getIsAjaxRequest())
					Yii::app()->end();
				else
					$this->redirect(array('view', 'id' => $model->id_beneficio));
			}
		}

		$this->render('create', array( 'model' => $model));
	}


Espero que sea lo que buscabas.
0

#3 User is offline   daniel_vald 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 20-August 12

Posted 22 September 2012 - 07:49 PM

Dependiendo de lo que quieras hacer voy dar 2 alternativas. pero igual mente algo para tener donde ir a sacarse las dudas
1.- Canal de youtube de Gustavo Salgado en español sigue creciendo con sus aporte
2.- repositorios de Gustavo muy bueno y con ejemplo de los videos
3.- Existe varias Extensiones ami me gusta multimodelform viene con sus explicación

Bueno vasta de esto y vamos una forma que creo te puede servir si tu ya tienes ingresados desde ante a las Personas, En este caso se pueden traer con funciones autocompletar o dropsown.

1.- Buscar la function relacions en el modelo Beneficios y comprovar que existe relacion como la que se indica si no crearla
public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		'persona' => array(self::BELONGS_TO, 'Persona', 'persona_id'),
		);
	}


2.- crear el codigo autocompletar en el modelo Persona
public function suggest($keyword,$limit=20)
	{
		$models=$this->findAll(array(
			'condition'=>'nombres LIKE :keyword',
			'order'=>'persona_id',
			'limit'=>$limit,
			'params'=>array(':keyword'=>"%$keyword%")
		));
		$suggest=array();
		foreach($models as $model) {
			$suggest[] = array(		
				'label'=>$model->nombres.' - '.$model->paterno.' - '.$model->materno,			
                 'value'=>$model->nombres, // value for input field
                 'id'=>$model->persona_id, // return values from autocomplete
				 'paterno'=>$model->paterno,
				 'materno'=>$model->materno,
				
			);
		}
		return $suggest;
	} 


//dropdown persona para algo te puede servir
public static function getListInvestigador()
	{
		return CHtml::listData(Persona::model()->findAll(array('order'=>'paterno')),'persona_id','concatened');

}
/*concatenacion delos campos****/
	
public function getConcatened()
    {
        return $this->nombres.' '.$this->paterno.' '.$this->materno;
    }


3.- Ahora como utilizarlos ir protected/view/benercios
cambiar parametros "persona_id"
_form
<?php  echo $form->dropDownList($model,'persona_id',CHtml::listData(
		Persona::model()->findAll(array('order'=>'paterno')),
		'persona_id','concatened'),array('empty'=>'Seleccione Persona'));?> 



_view "persona_id"
<?php echo CHtml::encode($data->persona->nombres." ".$data->persona->paterno); ?>


admin
en el "persona_id" remplazar por el array
array(
		'name'=>'persona_id',
		'value'=>'$data->persona->nombres. " " .$data->persona->paterno. " " .$data->persona->materno',
		'htmlOptions'=>array('style'=>'text-align: left','width'=>'90px'),
		'type'=>'text',
		),


view
cambiar "persona_id" en dentro del widget
'persona.nombres', //'nombre_de_la_tabla.campo_mostrar'


Bueno espero que este aporte sirva para varios y cualquier consulta primero ver los videos :) bajar los ejemoplo y despues consultar jajaja
0

#4 User is offline   thomas Scheidig 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 13-June 12

Posted 10 October 2012 - 06:44 AM

Hola gracias a todos por las respuestas, tarde algo en volver al foro, ya que estuve atareado con otro tema.
pude solucionar el problema pasando el dato como parametro en el controller y en el view asignarlo a un campo hidden, esto me soluciono el problema!!

<?php echo CHtml::activeHiddenField($model,'persona_id'); ?>
en este caso persona_id actua solo como dato, aunque en realidad es un indice, ni aparece visible, solo debe grabarse el dato.

y la data aparece automaticamente actualizada de modo que no tengo error al hacer el save
no se si es la forma correcta de hacerlo pero a mi me funciono de 10

bueno escucho comentarios, al respecto, Saludos a todos
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users