我已经安装了 CakePHP 3.0。我已经设置了一个自定义路由来将 SKU 传递到 Controller ,但无论我做什么,它都无法将传递的参数正确插入到 SQL 中。
我的路线如下:
$routes->connect('products/:sku', ['controller' => 'Products', 'action' => 'sku'], ['pass' => ['sku']]);
我可以通过记录 Controller 操作来找到参数 $sku。但正如您所看到的,在 SQL 中,sku 作为 :c0 传递。 (顺便说一句,我将“samsung-galaxy-s3”作为 SKU 传递)。
SELECT `Products`.`id`
AS `Products__id`, `Products`.`attribute_group_id` AS `Products__attribute_group_id`, `Products`.`order`
AS `Products__order`, `Products`.`alias` AS `Products__alias`, `Products`.`stock`
AS `Products__stock`, `Products`.`sku` AS `Products__sku`, `Products`.`price` AS `Products__price`, `Products`.`tax_id`
AS `Products__tax_id`, `Products`.`weight`
AS `Products__weight`, `Products`.`active`
AS `Products__active`, `Products`.`created`
AS `Products__created`, `Products`.`modified`
AS `Products__modified`, `AttributeGroups`.`id`
AS `AttributeGroups__id`, `AttributeGroups`.`name`
AS `AttributeGroups__name`, `Taxes`.`id` AS `Taxes__id`, `Taxes`.`is_default`
AS `Taxes__is_default`, `Taxes`.`name`
AS `Taxes__name`
FROM `products` `Products` INNER JOIN `attribute_groups` `AttributeGroups`
ON `AttributeGroups`.`id` = (`Products`.`attribute_group_id`)
INNER JOIN `taxes` `Taxes` ON `Taxes`.`id` = (`Products`.`tax_id`)
WHERE `Products`.`sku` = :c0
最佳答案
正如评论中的某人已经说过的那样,您正在查看参数化查询,而不是将对数据库执行的最终查询。请查看您的 DebugKit 面板以了解最终执行的查询。
关于php - 将路由参数传递给 CakePHP Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29753630/