使用CakePHP在URL中传递动态值

时间:2012-12-14 12:34:21

标签: php ajax cakephp

我有以下方法执行Ajax请求,传递从select输入获得的一些动态值。

它运行正常,但动态值作为参数传递到网址中,类似于 states/listCities/?big_string_of_serialized_parameter

$this->Js->event(
    'change', 
    $this->Js->request(
        array( #url
            'controller' => 'states', 
            'action' => 'listCities'),
        array( # ajax options that generates the serialized parameter
           'update' => '#DealerCityId', 
           'data' => '$("#DealerStateId").serialize()',
           'dataExpression' => true
        )
    )
);

我正在尝试以更友好的网址方式执行此操作,例如 states/listCities/2

CakePHP中可以使用输入中的动态值生成这样的友好URL,或者只能将动态值作为参数传递吗?

1 个答案:

答案 0 :(得分:1)

据我所知,这是不可能的。您可以在URL数组中传递ID作为第三个参数,但由于在模板生成时不知道ID,因此在这种情况下不适用。如果您想使用JsHelper,则必须坚持使用它提供的JavaScript代码生成。

作为替代方案,您可以编写自己的助手:从JsHelper导出并覆盖request()方法以满足您的需求。您可以获取原始源代码的源代码以获得良好的开端,并且仅修改在代码生成中使用data参数的方式。