【发布时间】:2015-04-20 16:42:19
【问题描述】:
我有一个 CakePHP 3.0 设置。我已经设置了一个自定义路由来将 SKU 传递给控制器,但无论我做什么,它都不会正确地将传递的参数插入到 SQL 中。
我的路线如下:
$routes->connect('products/:sku', ['controller' => 'Products', 'action' => 'sku'], ['pass' => ['sku']]);
我可以通过记录控制器操作找到参数 $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
【问题讨论】:
-
:c0是值绑定的占位符。如果正在执行的查询确实有问题,请添加更多详细信息,例如您的控制器代码和实际执行的查询(检查DebugKit)。 -
你能把你的查询代码贴在这里,我可以简单解释一下...
标签: php mysql cakephp cakephp-3.0