我需要在组件和帮助器之间共享数据.我正在将我自己的支付服务formdata生成器转换为CakePHP插件,我希望能够从控制器(使用组件)填写支付数据并使用帮助程序打印出数据.
到目前为止我尝试过的所有东西都觉得有点过于讨厌,所以让我问你:有没有优雅的方法将数据从组件传递给帮助器?
编辑:
我通过在组件初始化期间将原始的formadata类实例添加到ClassRegistry来解决了这种特殊情况.这样,帮助程序也可以使用ClassRegistry访问实例.
但是,这仅适用于对象,因此问题仍然存在.
我正在构建一个站点,该站点需要为每个配置文件提供唯一的子域.我使用的技术是Cake PHP + MongoDB.我需要知道同样的可行性.我是否可以创建物理DNS,或者我可以通过Cake PHP中的Routes Class来简单地路由用户的Profile页面.请提出一些更好,更简单的实施方法以及相同的可行性.
提前致谢.
我是蛋糕php的初学者.我需要将我的HTML模板转换为Cake PHP模板.任何的想法?
在模型上执行find()操作时,是否有一种指定列别名的好方法?
$this->User->find('first', array(
'fields' => array(
'CONCAT(firstname, ' ', surname) AS fullname',
'email',
'tel'
)
);
Run Code Online (Sandbox Code Playgroud)
目前,如果我这样做,它会返回如下数据:
Array
(
[0] => Array
(
[fullname] => John Smith
)
[User] => Array
(
[email] => jsmith@example.com
[tel] => 0123456789
)
)
Run Code Online (Sandbox Code Playgroud)
有没有办法让它像普通列一样返回列别名?
Array
(
[User] => Array
(
[fullname] => John Smith
[email] => jsmith@example.com
[tel] => 0123456789
)
)
Run Code Online (Sandbox Code Playgroud) 我正在努力CakePHP
并试图了解使我的应用程序保持一致和合乎逻辑的最佳方法.
现在我正在尝试Model data validation
处理和处理验证错误view
,我怀疑如果我想在返回的错误中插入一些链接,我应该怎么做,例如忘记密码.
HtmlHelper
在模型中使用(如果可能的话)在我的应用程序中返回一致的链接是好的,还是我应该考虑另一种方式?
<?php
App::import('Helper', 'Html');
class User extends AppModel {
var $name = 'User';
var $validate = array (
'email' => array (
'checkEmail' => array (
'rule' => array('email', true),
'message' => 'Email not valid message.'
),
'checkUnique' => array (
'rule' => 'isUnique',
'message' => 'This email is allready in the db, if you forgot the password, '.(string)$this->Html->link('click here', array('controller' => 'users', 'action' => 'password-recover')).'.'
)
)
// …
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以在CakePHP中使用Coffeescript?Rails有Barista,但我找不到类似于CakePHP的东西.理想情况下,透明的东西会将coffeescript按需编译为javascript,并且只有在它发生变化时才会编译.
CakePHP和Coffeescript的谷歌搜索结果引发了很多关于蛋糕命令之间冲突的讨论,但对于将它们一起使用的方式并不多.有人发现了什么吗?或者也许是我自己如何实现这样一个插件的想法?
我有一个相当修改的分页查询使用了许多连接等 - 但由于某种原因,paginator-> counter()永远不会匹配计数查询的结果.
您可以在http://dev.qreer.com/上看到它的运行情况- 通过在LHS导航上选择各种选项,查询输出在下面,并且分页器计数看起来非常随机.
知道我可以开始调试这个吗?
在Jobs Controller中:
$this->paginate = $this->Job->paginateParams($data);
$jobs = $this->paginate('Job');
$this->set(compact('jobs'));
Run Code Online (Sandbox Code Playgroud)
在模型中:
function paginateParams($data = null){
//lots of joins + conditions
return array('contain' => $contain, 'recursive' => 0,'joins' => $joins, 'conditions' => $conditions, 'group' => 'Job.id', 'order' => $order);
}
Run Code Online (Sandbox Code Playgroud)
示例连接(所有连接表和数据表的内部连接):
array(
'table' => 'education_backgrounds',
'alias' => 'EducationBackground',
'type' => 'INNER',
'conditions' => array('EducationBackgroundsJobs.education_background_id = EducationBackground.id'),
),
Run Code Online (Sandbox Code Playgroud)
样品条件:
'EducationBackground.name' => array('Aerospace Engineering');
Run Code Online (Sandbox Code Playgroud) 所以我让我的JavaScript进行Ajax调用,/my_controller/ajax_action
但是在控制器中我不知道如何将某些内容输出回JavaScript.
我收到错误,因为没有查看,MyController::ajaxAction()
但显然没有查看,所以我该怎么办?
我正在创建一个存储在蛋糕Session变量中的候选名单
$this->Session->read('Item.shorlist');
Run Code Online (Sandbox Code Playgroud)
这包含逗号分隔ID的列表,例如.1,2,3,4,5
$shortlist = $this->Session->read('Item.shorlist');
Run Code Online (Sandbox Code Playgroud)
我想在查找条件中使用此变量中的逗号分隔ID执行查找操作,例如:
$shortlist = $this->Item->find('all', array('conditions' => array('Item.id' => array($shortlist))));
Run Code Online (Sandbox Code Playgroud)
但是,这只返回1组数据.如果我手动输入数组,例如:
$shortlist = $this->Item->find('all', array('conditions' => array('Item.id' => array(1,2,3,4,5))));
Run Code Online (Sandbox Code Playgroud)
我得到了所有5条记录.
任何想法如何解决这个问题而不对每个id执行多次查找?如果我查看SQL转储,我可以看到WHERE Item
.id
=('1,2,3,4,5')使用$ shortlist变量,而如果我以逗号分隔的整数手动输入,例如:WHERE Item
.id
IN(1,2,3,4)然后sql查询按照我的意愿工作.所以我想我的问题是如何将逗号分隔的字符串转换为变量中的逗号分隔整数,以便SQL不会抛出错误?
在cakephp中有一种简单的方法来获取特定表列表的表模式数组吗?例如,我想要表a,b,d,f和z的表模式; 另外,有没有办法获得所有表的模式数组?
cakephp ×10
php ×3
model ×2
ajax ×1
arrays ×1
cakephp-1.3 ×1
coffeescript ×1
dns ×1
find ×1
helper ×1
html ×1
html-helper ×1
jquery ×1
mysql ×1
pagination ×1
sql ×1
subdomain ×1