我正在尝试使用 cakephp 中的 LEFT join 选择数据,这里我如何使用两个以上的表进行 LEFT join。这里我在两个表 news_feeds 和 news_feed_likes 之间创建 LEFT join。我想在这里介绍另外两个表,NewsFeedComments 和 newsfeed_likes_comments。我怎样才能做到这一点?
谢谢你的帮助
$this->paginate = array(
'conditions' => array('NewsFeed.group_id'=>$groupdata['Group']['id'],'NewsFeed.status'=>'A'),
'joins' => array(
array(
'alias' => 'newslikes',
'table' => 'news_feed_likes',
'type' => 'LEFT',
'conditions' => array(
'newslikes.news_feed_id = NewsFeed.id',
'newslikes.user_id'=>$this->Auth->user('id'),
'newslikes.status'=>'1',
),
),
array(
'alias' => 'newscommentslikes',
'table' => 'news_feed_comments_likes',
'type' => 'LEFT',
'conditions' => array(
'newscommentslikes.news_feed_comment_id = NewsFeedComment.id',
'newscommentslikes.user_id'=>$this->Auth->user('id'),
'newscommentslikes.status'=>'1',
),
),
),
'fields' => array(
'IFNULL(newslikes.user_id,0) AS likestatus',
'NewsFeed.id',
'NewsFeed.posted_message',
'NewsFeed.created',
'NewsFeed.user_id',
'NewsFeed.status',
'NewsFeed.newslike',
'IFNULL(newslikes.status,0) …Run Code Online (Sandbox Code Playgroud) 我的CakePHP应用程序中存在问题:我使用授权组件进行登录/注销机制.不幸的是,用户在尝试同时打开两个或更多php页面时会自动注销.这种情况经常发生,因为我们倾向于使用鼠标中键在短时间内打开许多标签.
有人有想法吗?可能是CakePHP还是有一个php设置允许useres同时发出多个请求?
格奥尔格·
我已经开始学习如何将CakePHP框架用于兼职工作.我决定在这个框架中构建我的一个个人项目,以便对其进行一些练习.
我有一些我使用Cake bake命令创建的模型,我添加了自动CRUD支持(它为控制器添加var $scaffold了所有相关操作.我想编辑这些操作但我没有引用生成的代码.(正如我之前所说,它将脚手架成员添加到控制器,就是这样.)如何编辑这些操作?
我想用希伯来语构建我的应用程序,我需要将所有生成的错误消息和状态更改为希伯来语(也是脚手架中生成的那些).我怎么能做到这一点?
我正在编写一个接受.mp4上传的应用程序.
所以我有一个24.3MB .mp4发布到服务器,但它无声地失败.
我拥有的下一个最小的文件是5.2MB .flv.当然不是文件类型,而是文件大小.
我想知道是否有人可以对此有所了解?
PS相关的php.ini条目如下:
memory_limit = 256M
upload_max_filesize = 32M
Run Code Online (Sandbox Code Playgroud)
救命!
我正在尝试使用jQuery ajax()调用我的'countries'控制器的'关税'动作,并以下列格式传递一个国家/地区名称:
/countries/tariff/countryname
Run Code Online (Sandbox Code Playgroud)
但是,使用以下代码(设置为GET),它将使用get ?添加来调用它:
/countries/tariff/?countryname
Run Code Online (Sandbox Code Playgroud)
这是代码:
$(document).ready(function(){
$('#CountriesIndexForm select').change(function(){
$.ajax({
type: "GET",
url: "/countries/tariff/",
data: escape($(this).val()),
success: function(html){
$(this).parent().next('div').html(html);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
我理解它,因为类型设置为GET,但有没有解决这个问题?
我注意到,当我连续两次刷新页面或双击链接时,用户会自动注销.我正在使用cakephp 1.2和Auth组件.我对CakePHP没有很多经验,任何想法可能会导致什么?
我正在做一些关于cakephp的自学(版本1.26).
我有一个简单的HTML输入文本字段,如下所示:
<input type="text" name="data[testing][name]" id="data[testing][name]">
Run Code Online (Sandbox Code Playgroud)
根据数据库检查"输入"文本框字段中的值.
如果值与数据库中存储的数据匹配,则返回true.
这是代码:
{
$t=$this->data;
$result=$this->User->findByname($t['testing']['name']);
if($result){ //doing something;}
}
Run Code Online (Sandbox Code Playgroud)
当我通过一点改动修改上面的代码时,我遇到了一个问题,
但随后它无法工作:
{
$t=$this->data;
$result=$this->User->findByname($t['testing']['name']);
if($result===true){ //doing something;}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我目前有一个项目,我们正在为PPC广告处理3000万+关键字.我们在Oracle中维护这些列表.有时我们需要从列表中删除某些关键字.该流程包括各种匹配类型策略,以确定是否应删除关键字:
WHERE keyword = '{term}'WHERE keyword LIKE '%{term}%'WHERE keyword LIKE '% {term} %' OR keyword LIKE '{term} %'
OR keyword LIKE '% {term}'现在,当处理列表时,它只能使用上面列出的匹配类型之一.但是,必须扫描所有30mil +关键字以进行匹配,并返回匹配的结果.目前,此过程可能需要数小时/天才能处理,具体取决于要搜索的关键字列表中的关键字数量.
您对如何优化流程有任何建议吗?这样可以更快地运行吗?
更新: 以下是搜索Holiday Inn的示例查询:
SELECT * FROM keyword_list
WHERE
(
lower(text) LIKE 'holiday inn' OR
lower(text) LIKE '% holiday inn %' OR
lower(text) LIKE 'holiday inn %'
);
Run Code Online (Sandbox Code Playgroud)
这是EXPLAIN输出的pastebin:http://pastebin.com/tk74uhP4
一些可能有用的其他信息.关键字可以包含多个单词,例如:
我有一个脚本,它使用ssh密钥连接到特定用户的远程服务器.但是,如果用户信息被更改且密钥未更新,则脚本将挂起等待密码.
如何在提示输入密码时捕获此信息并抛出DIE?
例如,如果我使用:
system("ssh -C USER@someserver.com -i /.ssh/USER.key ...");
Run Code Online (Sandbox Code Playgroud)
和USER在USER.key中不是同一个USER,它挂起等待密码.我宁愿让它死.
在不使用perl模块的情况下处理此问题的最佳方法是什么?
function dosomething($var1, $var2, $var3='somevalue'){
..
}
Run Code Online (Sandbox Code Playgroud)
关于什么
function dosomething($var3='somevalue',$var1, $var2 )
{
}
Run Code Online (Sandbox Code Playgroud)
我们可以调用doSomething(,1,2);?
这似乎会产生编译错误.