[英]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的链接? 编写我自己的链接的正确方法是什么?
谢谢。
我对这个问题感到困惑。
有什么问题? 它为您提供了一个约定(但也说它也将接受非约定),而您决定不使用该约定并不等于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.