我收到一个错误500数组到字符串转换消息,我似乎无法解决。我从插入以下代码行得到它,如果我把代码行放在我的更新函数中它运行。
$items[] = BookingRoom::model()->findAll('bookingId=:bookingId', array(':bookingId'=>1));
public function getItemsToUpdate(){
// create an empty list of records
$items = array();
// Iterate over each item from the submitted form
if (isset($_POST['BookingRoom']) && is_array($_POST['BookingRoom'])) {
foreach ($_POST['BookingRoom'] as $item) {
// If item id is available, read the record from database
if ( array_key_exists('id', $item) ){
$items[] = BookingRoom::model()->findByPk($item['id']);
}
// Otherwise create a new record
else {
$items[] = new BookingRoom();
}
}
} else {
$items[] = BookingRoom::model()->findAll('bookingId=:bookingId', array(':bookingId'=>1));
}
return $items;
}
同一预约控制器中的更新功能:
public function actionUpdate($id)
{
$model=$this->loadModel($id);
$items = array();
$items=$this->getItemsToUpdate();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['BookingRoom']))
{
$valid=true;
foreach($items as $i=>$item)
{
if(isset($_POST['BookingRoom'][$i]))
$item->attributes=$_POST['BookingRoom'][$i];
$valid=$item->validate() && $valid;
}
$valid=$model->validate() && $valid;
if($valid){
}
}
$this->render('update',
array('items'=>$items, 'model'=>$model));
}
答案 0 :(得分:0)
该行应为$items = ...
而不是$items[] = ...
。后者将一个元素附加到数组中。 findAll()
返回一组模型,因此应该使用前者。