我将数据从knockout.js表单传递给CakePHP中的控制器,但我对如何访问数据感到困惑。
正在传递网址
orders/submit_order/%7B"orderInfo":[%7B"itemNumber":"1","quantity":"1","price":1.00,"productName":"Test Product"%7D]%7D
在我的控制器中,我尝试在解码后简单地回显URL,但每次都是空的。我调试并发现它显示为命名参数
function submit_order($order = null){
$this->layout = false;
$this->autoRender = false;
$order = json_decode($order, true);
$print_r($order); //shows null
debug($this->params);
//$order_2 = json_decode($this->request->params['named'], true); //says that a string is required, array given
$order_2 = $this->request->params['named'];
print_r($order_2);
echo $order_2['orderInfo'][0]['itemNumber'];
}
debug语句返回以下内容
object(CakeRequest) {
params => array(
'plugin' => null,
'controller' => 'orders',
'action' => 'submit_order',
'named' => array(
'{"orderInfo"' => '[{"itemNumber":"1","quantity":"1","price":1.00,"productName":"Test Product"}]}'
),
'pass' => array()
)
当我打印$ order_2时,显示以下内容。
Array ( [{"orderInfo"] => [{"itemNumber":"1","quantity":"1","price":1.00,"productName":"Test Product"}]} )
我可能错了,但是支架/支架放置似乎很奇怪。
当我尝试回显itemnumber时,它给出了一个错误,指出它是一个未定义的索引。然后我注意到它并不像一个数组那样逐行交错。
如何访问此数据?