我正在尝试在与form
分离的CakePHP
中创建一个简单的model
,我遇到了生成的网址问题:
我明白了:(不起作用 - > paypal小写)
http://local.dev/integration-cloud/public_html/paypal/checkout
而不是:(作品 - > Paypal驼峰案例)
http://local.dev/integration-cloud/public_html/Paypal/checkout
这是我的代码:
贝宝/ view.ctp
<?php echo $this->Form->create(false, array('action' => 'checkout')); ?>
<?php echo $this->Form->end('Finish'); ?>
更新
如果我试试这个:
<?php echo $this->Form->create(false, array('url' => array('controller' => 'Paypal', 'action' => 'checkout'))); ?>
<?php echo $this->Form->end('Finish'); ?>
这是有效的,但是我不想在我的所有视图上写下引用的控制器,还有另外一种方法吗?
btw我在Linux服务器上,可能是case sensitive
问题吗?
谢谢,
答案 0 :(得分:2)
cakephp约定希望url中的控制器名称为小写和下划线
它甚至可以使用大写控制器名称,但您必须在每种形式中手动设置
答案 1 :(得分:1)
如果您愿意,可以执行以下操作:
<?php echo $this->Form->create(false, array('url' => '/Paypal/checkout')); ?>
<?php echo $this->Form->end('Finish'); ?>
但CakePHP建议使用以下内容:
<?php echo $this->Form->create(false, array('url' => array('controller' => 'Paypal', 'action' => 'checkout'))); ?>
<?php echo $this->Form->end('Finish'); ?>
答案 2 :(得分:0)
此处的问题是Paypal's plugin与我的控制器PaypalController
的名称混淆。
public $name = 'Paypal';
当我调用paypal
(小写)时,CakePHP尝试调用插件而不是我的PaypalController
类。
http://local.dev/integration-cloud/public_html/paypal/checkout
因此,要解决此问题,我必须将控制器的名称更改为PaypalPaymentProcessor