hola a todos comunidad, me esta sugiendo un error al ejecutar una consulta, tengo una tabla productos, la cual ejecuto con la consulta:
$codigo = $_POST['incodigo'];
$producto = Productos::model()->findByPk((string) $codigo);
en una accion del controlador, esta lee los resultados necesarios, me lee y muestra todos los campos de la tabla, seguidamente ejecuto una consulta en la misma accion, esta es la consulta:
$query = Yii::app()->db->createCommand()
->select('a.CodPVen')
->from('submayor a')
->join('subproductos s', 's.Codpro=a.Codpro')
->where('a.Codpro=:Codpro', array(':Codpro' => $producto->CodSubp))
->queryRow();
aqui en la consulta intento obtener los valores de los campos de la tabla submayor, para ello tengo lo siguiente:
tabla productos campo CodSubp, entre otros.
tabla subproductos campo Codpro, entre otros, Codpro es clave principal y esta realacionada con la tabla productos uno a varios con CodSubp.
tabla submayor campo Codpro, CodPVen, entre otros Codpro esta relacionada con Codpro de la tabla subproductos uno a varios, o sea puedo tener un Codpro para varios CodPVen.
Esta es la accion del controlador:
public function actionObtenerProducto() {
$codigo = $_POST['incodigo'];
$destino = $_POST['idde'];
$producto = Productos::model()->findByPk((string) $codigo);
$query = Yii::app()->db->createCommand()
->select('a.CodPVen')
->from('submayor a')
->join('subproductos s', 's.Codpro=a.Codpro')
->where('a.Codpro=:Codpro', array(':Codpro' => $producto->CodSubp))
->queryRow();
$producmayor = Submayor::model()->find('Codpro=:Codpro and CodPVen=:CodPVen', array(':Codpro' => $producto->CodSubp, ':CodPVen' => $query->CodPVen));
if ($producto->Codde <> $_POST['idde'])
echo "error";
else
echo CJSON::encode(array(
'descripcion' => $producto->NProductos,
'codigo' => $producto->Codprod,
'preciomn' => $producto->PreMay,
'existencia' => $producmayor->SaldoAct,
'preciocuc' => $producto->PrCUC,
'Idum' => $producto->UM,
'CodPVen' => $producmayor->CodPVen,
));
}
el objetivo es que al introducir un codigo de un producto de la tabla productos me lea la consulta $producmayor, y luego me muestre todos los valores del array del CJSON.
Pero al hacerlo me dice que esta intentado leer esto $query->CodPVen y no es un objeto, o sea que no encuentra el valor, dando este error en al hacer el debug (F12):
PHP Error [8]
Trying to get property 'CodPVen' of non-object (D:\xampp\htdocs\SoftVentas\protected\controllers\PrefacturasController.php:182)
#0 D:\xampp\htdocs\SoftVentas\protected\controllers\PrefacturasController.php(182): CWebApplication->handleError()
#1 D:\xampp\htdocs\framework\web\actions\CInlineAction.php(50): PrefacturasController->actionObtenerProducto()
#2 D:\xampp\htdocs\framework\web\CController.php(309): CInlineAction->runWithParams()
#3 D:\xampp\htdocs\framework\web\filters\CFilterChain.php(134): PrefacturasController->runAction()
#4 D:\xampp\htdocs\framework\web\filters\CFilter.php(41): CFilterChain->run()
#5 D:\xampp\htdocs\framework\web\CController.php(1146): CAccessControlFilter->filter()
#6 D:\xampp\htdocs\framework\web\filters\CInlineFilter.php(59): PrefacturasController->filterAccessControl()
#7 D:\xampp\htdocs\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
#8 D:\xampp\htdocs\framework\web\CController.php(292): CFilterChain->run()
#9 D:\xampp\htdocs\framework\web\CController.php(266): PrefacturasController->runActionWithFilters()
#10 D:\xampp\htdocs\framework\web\CWebApplication.php(283): PrefacturasController->run()
#11 D:\xampp\htdocs\framework\web\CWebApplication.php(142): CWebApplication->runController()
#12 D:\xampp\htdocs\framework\base\CApplication.php(162): CWebApplication->processRequest()
#13 D:\xampp\htdocs\SoftVentas\index.php(29): CWebApplication->run()
necesto alguna sugerencia para resolver esta consulta