Estou montando uma sistema de pedidos com uma tela mestre detalhe com o cabeçalho(pedido) e seus itens. Estou conseguindo visualizar na view update o pedido e os itens. Mas so esta mostrando um itens e há quatro cadastrados
meu controller
public function actionUpdate($id)
{
$model=$this->loadModel($id);
//$items=$this->actionItens();
$items=$this->loadItems($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['sysos']))
{
$model->attributes=$_POST['sysos'];
if($model->save())
$this->redirect(array('view','ID'=>$model->ID));
}
$this->render('update',array(
'model'=>$model,
'items'=>$items,
));
}
public function loadItems($id)
{
$items=itenssysos::model()->find('IDSYSOS=:IDSYSOS', array(':IDSYSOS'=> $id,));
//$items=itenssysos::model()->findByPk($id);
if($items===null)
$items = new itenssysos;
//throw new CHttpException(404,'The requested page does not exist.');
return $items;
}
No load Itens , se eu substituir a função find() por findAll(), que eu acho que seria a mais correta ele gera um erro mostrando o pedido, mas não mostra nenhum item
$param = $_GET['term'];
$criteria = new CDbCriteria;
$criteria->condition = "nome LIKE :sterm OR sobrenome LIKE :sterm OR id LIKE :sterm";
$criteria->params = array(":sterm"=>"%$param%");
$criteria->limit = 20;
$models = Cliente::model()->findAll($criteria);
Fazendo o que vc falou pego os dados retornados e jogo no dataprovider do TbGridView para obter uma tabela, ou o TbGridView não consegue ler o dados devolvidos pelo findall?
O que não estou conseguindo entender é que se na linha
eu substituir por find() consigo retornar o registro (um único) da variável $id, mas se coloco findAll() ele gera um erro que acredito esteja no dataprovider do TbGridView. Pois todos os campos acima do TbGridView são mostrados, mas abaixo nada é mostrado.