php - 将路由参数传递给 CakePHP Controller

标签 php mysql cakephp cakephp-3.0

我已经安装了 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/

相关文章:

php - 多维数组 : How to get all values of a specific key?

java - 来自 ListView 的相同数据被多次打印

javascript - 发布日期始终为 '0000-00-00 00:00:00'

mysql - cakephp 带有子查询和 if 的虚拟字段

php - 声明变量 MySQL

php - 如何区分 SELECT 查询中的大写或小写单词

mysql - 查找表的最佳 mysql 表类型(重读,无写)

mysql - Rails 3 自动创建联接表关联

mysql - join 和 CakePHP 出错

CakePHP 3 : How to receive translated content?