Yii Framework Forum: Error Que No Entiendo Por Que? - Yii Framework Forum

Jump to content

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

Error Que No Entiendo Por Que? Rate Topic: -----

#1 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 01 December 2013 - 04:11 PM

Hola del siguiente enlace My linkintente hacer correr el ejemplo para varias instancias de modelo en un solo formulario pero me da este error "Trying to get property of non-object" y me muestra q es en esta linea
if ( $item->id ){

podria alguien decirme como solucionarlo??? de antemano gracias..
0

#2 User is offline   JFReyes 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 477
  • Joined: 28-October 09
  • Location:Puerto Rico

Posted 01 December 2013 - 05:58 PM

Favor de postear tu código; sin ver el mismo es difícil poder ayudarte. En términos generales trataste de acceder algo (una propiedad) de algo que no es un objeto (un arreglo, otra cosa?) PHP es estricto con esas cosas.
José
0

#3 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 01 December 2013 - 10:13 PM

en seguida el codigo
0

#4 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 01 December 2013 - 10:17 PM

public function actionBatchUpdate()
{
// retrieve items to be updated in a batch mode
// assuming each item is of model class 'Item'
$items=$this->getItemsToUpdate();
if(isset($_POST['Item']))
{
$valid=true;
foreach($items as $i=>$item)
{
if(isset($_POST['Item'][$i]))
$item->attributes=$_POST['Item'][$i];
$valid=$item->validate() && $valid;
}
if($valid) // all items are valid
// ...do something here
}
// displays the view to collect tabular input
$this->render('batchUpdate',array('items'=>$items));
}
esto es la funcion dentro el controlador

public function getItemsToUpdate() {
// Create an empty list of records
$items = array();

// Iterate over each item from the submitted form
if (isset($_POST['Item']) && is_array($_POST['Item'])) {
foreach ($_POST['Item'] as $item) {
// If item id is available, read the record from database
if ( $item->id ){
$items[] = MyModel::model()->findByPk($item->id);
}
// Otherwise create a new record
else {
$items[] = new MyModel();
}
}
}
return $items;
}
esto tambien en el controlador

<div class="form">
<?php echo CHtml::beginForm(); ?>
<table>
<tr><th>Name</th><th>Price</th><th>Count</th><th>Description</th></tr>
<?php foreach($items as $i=>$item): ?>
<tr>
<td><?php echo CHtml::activeTextField($item,"[$i]name"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]price"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]count"); ?></td>
<td><?php echo CHtml::activeTextArea($item,"[$i]description"); ?></td>
</tr>
<?php endforeach; ?>
</table>

<?php echo CHtml::submitButton('Save'); ?>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->
y por ultimo esto es de la vista llamada batchUpdate.php
esto lo encontre en un enlace el cual esta arriba loq kiero es una breve explicacion para entenderlo xfa xfa tal vez sea mucho pedir pero soy nuevo esto del framework yii
0

#5 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 16 December 2013 - 03:11 PM

El error es debido a que $item no es un objeto sino un array.. así que debe invocarse como $item['id']

Saludos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
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