我的问题很简单,但很难找到搜索引擎的答案.
我只想更新数据库中的字段,使用旧字段值来添加另一个值.我现在正在使用以下内容:
$this->Advertisement->saveField('total_views', '(total_views + 1)', false);
Run Code Online (Sandbox Code Playgroud)
但这给了我下一个查询:
UPDATE `advertisement` SET `total_views` = '(total_views +1)', `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16
Run Code Online (Sandbox Code Playgroud)
这是错误的,它应该是:
UPDATE `advertisement` SET `total_views` = (total_views +1), `modified` = '2011-08-26 10:44:58' WHERE `advertisement`.`id` = 16
Run Code Online (Sandbox Code Playgroud)
问题在于它放在(total_views +1)引号之间.
有没有人知道如何使这个工作?
我有一个隐藏的提交按钮的问题.我有一个用于Ajax(jQuery)聊天的输入字段,人们应该输入文本并按Enter键提交.这在Firefox中运行良好,但在chrome中不行,我认为它将其视为不存在.
我正在使用以下代码:
$('#CommentChatForm').submit(function(event){
...
}
Run Code Online (Sandbox Code Playgroud)
我使用它来隐藏提交按钮:
$('#CommentChatForm input:submit').hide();
Run Code Online (Sandbox Code Playgroud)
这使得HTML看起来像这样:
<div class="submit">
<input type="submit" value="Submit" style="display: none;">
</div>
Run Code Online (Sandbox Code Playgroud)
我还尝试通过在顶部添加以下内容来使用keypress():
$('#CommentMessage').keypress(function(e){
if(e.which == 13){
$('#CommentChatForm').submit();
}
})
Run Code Online (Sandbox Code Playgroud)
这使得它在Chrome中运行良好,但在Firefox中它会导致它提交两次而不是一次.
我目前正在研究CakePHP 2.0,并希望将旧的1.3项目转换为2.0.我将从头开始,因为项目中有很多代码可以更好.
其中一个是动态URL,项目多语言甚至URL都会更改为所选语言.例如:
英语:/pages/new-article
荷兰语:/paginas/nieuw-artikel
两者都会去 PagesController::display();
注意:URL可以更长,页面可以有子页面,也可以添加到URL中.例如:/pages/new-article/article-subpage
现在,我之前采用的方式是为所有事情做一个特定行动的路线.喜欢*去PagesController::index();
然而,这似乎减慢了应用程序的速度,并带来了很多问题.
所以我的问题是,有更简单的方法吗?
我不想硬编码任何东西,我应该能够更改/pages/article为/page/article无需更改代码.
注意:如果您知道在1.2或1.3中执行此操作的方法,那也将是很好的,2.0并没有那么不同.
cakephp ×2
hidden ×1
javascript ×1
jquery ×1
keypress ×1
php ×1
sql ×1
submit ×1
url-routing ×1