2015-04-20 145 views
0

我有一個CakePHP 3.0安裝程序。我已經設置了一個自定義路由來將SKU傳遞給控制器​​,但無論我做什麼,都不會將傳入的參數正確插入到SQL中。將路由參數傳遞給CakePHP控制器

我的路線是這樣的:

$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 
+0

':c0'是值綁定的佔位符。如果正在執行的查詢出現問題,請添加更多詳細信息,例如控制器代碼和實際執行的查詢(請查看[** DebugKit **](http://book.cakephp.org/3.0) /en/debug-kit.html))。 – ndm

+0

你可以在這裏發佈你的查詢代碼,所以我可以很容易地解釋... –

回答

1

正如有人在評論中已經說過的,您正在查看參數化查詢,而不是最終查詢將執行到數據庫。請查看您的DebugKit面板以查看最終執行的查詢。

相關問題