如果我getLastInsertId()在a之后立即做save(),它可以工作,但否则它不会.这在我的控制器中得到证明:
function designpage() {
//to create a form Untitled
$this->Form->saveField('name','Untitled Form');
echo $this->Form->getLastInsertId(); //here it works
}
function insertformname() {
echo $this->Form->getLastInsertId(); //this doesnt echo at all
}
Run Code Online (Sandbox Code Playgroud)
请建议一种获得我想要的功能的方法.
我正在努力编写可读且易于理解的文档,该文档描述了传递给函数的Array选项的多树结构.
这是一个示例数组结构.
$arr = [
'fields' => [
'title' => [
'name' => 'Document.title',
'format' => 'string',
'readonly' => true
]
]
];
Run Code Online (Sandbox Code Playgroud)
上述数组有许多可能的选项,但这用作理解该结构的函数的参数.
function doSomething(array $arr) { ... }
Run Code Online (Sandbox Code Playgroud)
我想记录如何在PHPDoc中构建数组,但我不确定正确的方法是什么.
这就是我现在拥有的.
/**
* Holds configuration settings for each field in a model.
* Defining the field options
*
* array['fields'] array Defines the feilds to be shown by scaffolding.
* array['fields'][fieldName] array Defines the options for a field, or just enables the field if array is not applied.
* …Run Code Online (Sandbox Code Playgroud) PHP Fatal error: Class 'PDO' not found in /home/bd/public_html/app/webroot/Cake/Model/Datasource/Database/Mysql.php on line 177
Run Code Online (Sandbox Code Playgroud)
PHP信息:
PDO
PDO support => enabled
PDO drivers => sqlite, sqlite2, mysql
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => 5.5.24
Directive => Local Value => Master Value
pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.7.7.1
Run Code Online (Sandbox Code Playgroud)
PHP INI:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)
码:
/**
* Check whether the MySQL extension is installed/loaded
*
* @return boolean …Run Code Online (Sandbox Code Playgroud) 我需要选择User.site_url不为null的所有行.在常规MySQL查询中执行此操作非常简单,但是如何在CakePHP中完成此操作?
手册提到了以下内容:
array ("not" => array (
"Post.title" => null
)
)
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但它仍然返回一切
$this->User->find('all', array('conditions' => array('not' => array('User.site_url'))));
Run Code Online (Sandbox Code Playgroud) 我正处于需要为使用CakePHP 1.3编写的REST API编写单元测试的地步.API支持用于查询和操作数据的GET,POST和PUT请求.
有没有确定的方法来测试模拟HTTP请求的API的正确输入/输出,使用fixture?我不想对live(dev)数据库运行实际的POST/PUT请求.我怎样才能最好地模拟系统以使用临时模型,然后按原样测试堆栈的其余部分?
使用控制器测试可以轻松测试GET请求.但是,对于数据操作,API非常广泛地使用HTTP头,并且还解析原始XML和JSON POST/PUT数据.控制器单元测试方法仅通过$this->data在控制器中设置来模拟POST数据,这不允许我正确地测试API.
我开始使用CakePHP,我正在阅读手册.在页面的大约一半处,有这样的评论:
// Render the element in /views/elements/ajaxreturn.ctp
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的问题:.ctp扩展名是指什么?什么是一般用例?
谢谢.
嗨,
我需要使用CakePHP find方法执行以下查询:
SELECT *
FROM `messages`
INNER JOIN users ON messages.from = users.id
WHERE messages.to = 4
ORDER BY messages.datetime DESC
Run Code Online (Sandbox Code Playgroud)
基本上我有:
messages表与Message模型users表与User模型并希望在一个查询中从两个表中检索信息.该users.id字段与messages.from字段相同,因此这是连接所在的字段.
我在我MessagesController这样做,所以它需要是这样的:
$this->Message->find();
Run Code Online (Sandbox Code Playgroud)
谢谢
我想得到CakePHP运行的最后一个查询.我无法在core.php中打开调试,我无法在本地运行代码.我需要一种方法来获取最后的SQL查询并将其记录到错误日志而不影响实时站点.此查询失败但正在运行.
这样的事情会很棒:
$this->log($this->ModelName->lastQuery);
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我有一个在CakePHP上运行的项目.我的所有视图都存储为ctp文件.如何渲染我的ctp文件,以便在查看存储为PHP文件的文件时,我具有相同的可视格式?在Notepad ++中,我可以通过选择"语言"工具栏选项来完成此操作.PHPStorm中是否有类似的功能?