Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP-调用camel case操作方法,但URL中带有下划线_Php_Cakephp - Fatal编程技术网

CakePHP-调用camel case操作方法,但URL中带有下划线

CakePHP-调用camel case操作方法,但URL中带有下划线,php,cakephp,Php,Cakephp,我怎样才能像myActionMethod()那样保留我的操作方法名称,而在URL中使用/controller/my\u action\u method 我确信蛋糕会自动地做这个变化,但显然不是。我必须给我的方法命名,比如my\u action\u method,这是我不喜欢的 更好的解决方案是为SEO提供连字符URL,而不是下划线。您需要将此字符串添加到app/core/routes.php文件中 Router::connect ('/controller/action-action/*',ar

我怎样才能像
myActionMethod()
那样保留我的操作方法名称,而在URL中使用
/controller/my\u action\u method

我确信蛋糕会自动地做这个变化,但显然不是。我必须给我的方法命名,比如
my\u action\u method
,这是我不喜欢的


更好的解决方案是为SEO提供连字符URL,而不是下划线。

您需要将此字符串添加到app/core/routes.php文件中

Router::connect ('/controller/action-action/*',array('controller'=>'somecontroller', 'action'=>'actionaction'));
例如:

Router::connect ('/users/view-user/*',array('controller'=>'users', 'action'=>'viewUser'));
/用户/查看用户/ /用户/视图用户/
两个url具有相同的操作

您需要将此字符串添加到文件app/core/routes.php中

Router::connect ('/controller/action-action/*',array('controller'=>'somecontroller', 'action'=>'actionaction'));
例如:

Router::connect ('/users/view-user/*',array('controller'=>'users', 'action'=>'viewUser'));
/用户/查看用户/ /用户/视图用户/
两个url具有相同的操作

您可以使用路由;但为什么要在这么琐碎的事情上打破惯例呢?是否有一种能自动全局转换所有URL的路由?我不认为方法命名约定是微不足道的。我喜欢坚持编码约定,因此总是使用驼峰大小写方法名。有些加下划线和驼峰格似乎很愚蠢。你可以使用路由;但为什么要在这么琐碎的事情上打破惯例呢?是否有一种能自动全局转换所有URL的路由?我不认为方法命名约定是微不足道的。我喜欢坚持编码约定,因此总是使用驼峰大小写方法名。在应用程序中添加下划线和驼峰形似乎很愚蠢。这似乎意味着您必须为要连接的每个操作都这样做。可能会有数百个。我添加了一个小示例,希望它能有所帮助,很抱歉,因为为我解释一些关于英语的内容,这并不容易。看起来,对于应用程序中要连接的每个操作,您都必须这样做。可能会有数百个。我添加了一个小例子,希望能有所帮助,抱歉,因为为我解释一些关于英语的内容,这并不容易