繁体   English   中英

Cakephp命名约定是否矛盾?

[英]Cakephp naming convention contradiction?

我不明白以下内容。 他们在书中说:

多个单词控制器可以是与控制器名称相同的任何“变形”形式,因此:

 /redApples /RedApples /Red_apples /red_apples 

将全部解析为RedApples控制器的索引。 但是,约定是您的URL是小写且带有下划线的,因此/ red_apples / go_pick是访问RedApplesController :: go_pick操作的正确形式。

但是如果我在add.ctp视图上写这个

echo $this->Html->link('Add Red Apples',
                    array('controller' => 'RedApples', 'action' => 'add'),
                    array('class' => 'button'));

它创建以下html输出:

www.site.com/RedApples/add

因此,访问RedApplesController :: add的正确方法是/ red_apples / add,但是CakePHP html帮助程序会创建类似/ RedApples / add的链接? 编写我自己的链接的正确方法是什么?

谢谢。

我对这个问题感到困惑。

  1. 它说你可以使用任何形式
  2. 您使用非推荐的形式
  3. 它显示您选择的形式

有什么问题? 它为您提供了一个约定(但也说它也将接受非约定),而您决定不使用该约定并不等于IMO有问题。

也许我误会了真正的问题?

编写我自己的链接的正确方法是什么?

“正确”方式是您从书中复制/粘贴的方式,几乎从字面上说“正确方式是...”。

但是,约定是您的URL是小写且带有下划线的, 因此/ red_apples / go_pick是访问RedApplesController :: go_pick操作的正确形式

如果在链接创建中必须使用“ RedApples”(您不能更改的变量或其他东西?)作为控制器名称,则可以将其包装在一个变形器中:

$myController = 'RedApples'; //unable to change to 'red_apples' for some reason
//...
'controller'=>Inflector::tableize($myController)
//...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM