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
Page 1 of 1
Accion Create Y Update Con Tablas Vinculadas tablas vinculadas
#2
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í.
Espero que sea lo que buscabas.
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.
#3
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
2.- crear el codigo autocompletar en el modelo Persona
//dropdown persona para algo te puede servir
}
/*concatenacion delos campos****/
3.- Ahora como utilizarlos ir protected/view/benercios
cambiar parametros "persona_id"
_form
_view "persona_id"
admin
en el "persona_id" remplazar por el array
view
cambiar "persona_id" en dentro del widget
Bueno espero que este aporte sirva para varios y cualquier consulta primero ver los videos
bajar los ejemoplo y despues consultar jajaja
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
#4
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
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
Share this topic:
Page 1 of 1

Help











