我在视图文件中使用了cakephp 2.5 postlink方法:
$tableRow['Model.modelatribute'] = $this->Form->postLink(
$data['Vehicle']['plate'],
array('controller'=>'somecontroller',
'action' => 'somemethod',
'Model.modelatribute' => base64_encode($data['Vehicle']['plate'])
),
array('confirm' => 'Look at vehicle '.$data['Vehicle']['plate'])
);
我不想在网址栏上显示模型属性名称。点击链接并重定向后,网址显示:
somemethod/Model.modelatribute:vSpEeTIweQ%3D%3D
我可以使用postlink方法o cakephp 2.5隐藏模型属性名称吗?
提前感谢
答案 0 :(得分:2)
如果您只想将Model.modelatribute
的值作为参数传递,请在routing array中不要使用Model.modelatribute。如果您想在网址中传递值而不显示,可以使用postLink的data option。
echo $this->Form->postLink(
$data['Vehicle']['plate'],
array(
'controller'=>'somecontroller',
'action' => 'somemethod',
base64_encode($data['Vehicle']['plate']) // Routing array without modelname
),
array(
'confirm' => 'Look at vehicle '.$data['Vehicle']['plate'],
'data' => array(
// Data option of postLink method
'Model.modelatribute' => base64_encode($data['Vehicle']['plate'])
)
)
);
答案 1 :(得分:1)
好吧,你放在那里。如果您不希望它出现在那里,请不要将其放在URL中。您也可以put it into the body of the POST request。
如果您担心人们可以使用模型名称进行某些操作而您希望隐藏它,那么这是一种非常糟糕的方法,称为security through obscurity。相反,您需要确保验证只传递和处理您想要的值。因此,请始终从任何地方检查您的传入数据。