El problema con el que me he encontrado es con una relación hasBelongsToMany que voy a postear haber si alguien me puede echar un cable pues no se donde esta el fallo , como curiosidad comentar que tanto con mis controladores como con scaffolding el error que me tira es el mismo , por ello deduzco que el fallo lógicamente no es de los controladores por eso no los voy a postear.
Error que me tira:
Código:
Modelos afectadosWarning (512): SQL Error: 1054: Unknown column 'PedidosProducto.id' in 'field list' [CORE/cake/libs/model/datasources/dbo_source.php, line 524] Code | Context $sql = "SELECT `PedidosProducto`.`id` FROM `pedidos_productos` AS `PedidosProducto` WHERE `PedidosProducto`.`producto_id` = 11 " $error = "1054: Unknown column 'PedidosProducto.id' in 'field list'" $out = null $out = null; if ($error) { trigger_error("<span style = \"color:Red;text-align:left\"><b>SQL Error:</b> {$this->error}</span>", E_USER_WARNING); DboSource::showQuery() - CORE/cake/libs/model/datasources/dbo_source.php, line 524 DboSource::execute() - CORE/cake/libs/model/datasources/dbo_source.php, line 201 DboSource::fetchAll() - CORE/cake/libs/model/datasources/dbo_source.php, line 336 DboSource::read() - CORE/cake/libs/model/datasources/dbo_source.php, line 652 Model::find() - CORE/cake/libs/model/model.php, line 1990 Model::_deleteLinks() - CORE/cake/libs/model/model.php, line 1799 Model::del() - CORE/cake/libs/model/model.php, line 1711 ProductosController::delete() - APP/controllers/productos_controller.php, line 77 Object::dispatchMethod() - CORE/cake/libs/object.php, line 118 Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 227 Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 194 [main] - APP/webroot/index.php, line 88 Query: SELECT `PedidosProducto`.`id` FROM `pedidos_productos` AS `PedidosProducto` WHERE `PedidosProducto`.`producto_id` = 11 Warning (2): Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/pedidoscake/cake/basics.php:111) [CORE/cake/libs/controller/controller.php, line 644] Code | Context $status = "Location: http://localhost/pedidoscake/productos" header - [internal], line ?? Controller::header() - CORE/cake/libs/controller/controller.php, line 644 Controller::redirect() - CORE/cake/libs/controller/controller.php, line 625 ProductosController::delete() - APP/controllers/productos_controller.php, line 83 Object::dispatchMethod() - CORE/cake/libs/object.php, line 118 Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 227 Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 194 [main] - APP/webroot/index.php, line 88 (default) 10 queries took 7 ms Nr Query Error Affected Num. rows Took (ms) 1 DESCRIBE `productos` 6 6 1 2 DESCRIBE `categorias` 2 2 1 3 DESCRIBE `pedidos` 7 7 1 4 DESCRIBE `clientes` 12 12 1 5 DESCRIBE `estados` 2 2 2 6 DESCRIBE `pedidos_productos` 5 5 1 7 SELECT COUNT(*) AS `count` FROM `productos` AS `Producto` WHERE `Producto`.`id` = 11 1 1 0 8 SELECT `PedidosProducto`.`id` FROM `pedidos_productos` AS `PedidosProducto` WHERE `PedidosProducto`.`producto_id` = 11 1054: Unknown column 'PedidosProducto.id' in 'field list' 0 9 SELECT `Producto`.`categoria_id` FROM `productos` AS `Producto` LEFT JOIN `categorias` AS `Categoria` ON (`Producto`.`categoria_id` = `Categoria`.`id`) WHERE `Producto`.`id` = 11 LIMIT 1 1 1 0 10 DELETE FROM `productos` WHERE `productos`.`id` = 11 1 0
Producto.php
Código:
Pedido.php<?php class Producto extends AppModel { var $name='Producto'; var $belongsTo='Categoria'; var $hasAndBelongsToMany = 'Pedido'; } ?>
Código:
En la bd he creado además de las tablas pedidos y productos otra llamada pedidos_productos SIN ID y con dos foreingkey pedidos_id y productos_id .<?php class Pedido extends AppModel { var $name='Pedido'; var $belongsTo=array ('Cliente','Estado'); var $hasAndBelongsToMany = 'Producto'; } ?>
La verdad que le he dado muchas vueltas y no se en que fallo , porque casi todo lo hace bien, añadir productos, modificarlos y solo falla al querer borrarlos . Además me gustaría poder borrar solo los productos sin tener que borrar los pedidos asociados ni las categorías, pero parece que dependece='false' no funciona con hasBelongsToMany ni parece hacerle caso a $this->Producto->recursive = 0;
Un saludo y mil gracias de antemano