小编ali*_*don的帖子

CakePHP 2.1 - 如何在find()中正确使用DISTINCT

我有一个让我疯狂的问题,我不得不承认我在CakePHP中没有经验.正如在这个问题中提到的, 在CakePHP查找函数中使用DISTINCT,这样使用DISTINCT:

$this->Model->find('all', array('fields'=>'DISTINCT field_name'));
Run Code Online (Sandbox Code Playgroud)

不返回DISTINCT值,而是返回所有行.事实上,这里的DISTINCT完全没有意义,因为由于某种原因,CakePHP补充道TableName.id在SQL查询中(为什么??我可以删除id引用??),有效地返回每个DISTINCT主键(= all rows = unhelpful).

所以,我仍然想要返回特定field_name列的DISTINCT值.我不能只使用find('all')或find('list')函数吗?是否真的是使用上面链接中描述的Set :: extract()函数来实现它的正确方法?这似乎是CakePHP过度间接的解决方案,通常Cake会让我的生活更轻松.:-)将find和DISTINCT一起使用的正确方法是什么?也许DISTINCT不适用于find()?

看看CookBook,他们说:"做一个DISTINCT查询的快速例子.你可以用类似的方式使用其他运算符,如MIN(),MAX()等:"

<?php
    array(
        'fields' => array('DISTINCT (User.name) AS my_column_name'),
        'order' = >array('User.id DESC')
    )
?>
Run Code Online (Sandbox Code Playgroud)

资料来源:http://book.cakephp.org/2.0/en/models/retrieving-your-data.html

这表明DISTINCT应该可以使用,但是这里有什么用呢?(User.name)对应于我想要DISTINCT的field_name还是my_column_name my field_name?

最后,从CakePHP 1.x迁移到CakePHP 2.x时,是否有任何改变?即在Stackoverflow上看到的CakePHP 1.x的答案仍然相关吗?

提前致谢!

cakephp extract distinct find cakephp-2.0

11
推荐指数
2
解决办法
3万
查看次数

我可以在Windows 8.x本地测试Safari 7.0吗?

我正在Windows 8.x计算机上本地开发我的Web应用程序.现在我正在更新灵活的盒子布局模块支持的网页设计.

可以轻松测试Chrome和IE的设计.但有没有办法在本地测试Safari 6.1+支持?

似乎Apple不再为Windows开发Safari浏览器,而Safari 5.1是Windows的最新版本.Safari 5.1不支持最新的flexbox语法.

有没有一种简单的方法可以在Windows 8.x上进行本地测试,或者我是否可以在iOS设备上进行本地测试或将新设计置于现场,以便我可以在各种测试站点上进行测试?

css safari windows-8

10
推荐指数
1
解决办法
5166
查看次数

PHP getimagesize - 无法打开流.错误的请求

我收到以下错误:

getimagesize(https://static1.squarespace.com/static/570d03d02b8dde8b2642afca/570f74e87c65e4819dec6812/57272dbfb6aa606f78a5d8b5/1470397291105/4XTRYCK3.jpg):无法打开流:HTTP请求失败!HTTP/1.1 400错误请求

我的浏览器中的图像打开没有问题.

有谁知道为什么会失败?

php gd getimagesize

7
推荐指数
1
解决办法
1145
查看次数

HTML Purifier - 更改默认允许的HTML标记配置

我想允许用户可以在我的论坛中使用的HTML标签的有限白名单.所以我已经像这样配置了HTML Purifier:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li');
$purifier = new HTMLPurifier($config);
Run Code Online (Sandbox Code Playgroud)

我想知道的是,HTML Purifier的默认配置是否仍然适用,但接受的HTML标签数量减少或者我是否需要手动重新设置每个可能的配置参数?

另外,我应该以任何方式调整默认配置以保证安全吗?我是整个XSS保护的新手,是HTML Purifier的新手,并没有发现手册提供了很多"基本"提示和提示.

xss htmlpurifier

5
推荐指数
1
解决办法
4281
查看次数

CakePHP 2.1 - 自定义验证规则 - 检查唯一字段值组合

我有几个列(ip,provider_id),我希望值的组合始终是唯一的.因此,我正在尝试构建自定义验证功能.但我有问题抓住二级领域的价值.这是我目前在模型中的代码:

public $validate = array(
   'ip' => array(
      'rule' => array('uniqueClick', 'provider_id'),
      'message' => 'The click is not unique.'
    )
);  

public function uniqueClick ($ip, $field) {

   $count = $this->find('count', array('conditions' => array('ip' => $ip, 'provider_id' => $field)));
   // echo $field;
   return $count == 0;

}
Run Code Online (Sandbox Code Playgroud)

所以问题是当我测试加载到$ field中的值时,它只是'provider_id',一个字符串.我希望它包含'provider_id'字段的值.有没有人知道如何获取该值(以及必要时的所有其他辅助模型字段值)并将其发送到自定义验证函数?

我在CookBook上的阅读和那些讨论类似问题的人似乎认为这个解决方案可行,但不幸的是不适合我.

提前致谢!

validation cakephp unique customvalidator cakephp-2.0

3
推荐指数
1
解决办法
8842
查看次数

Pinterest按钮到我的网站 - 我真的需要他们的Javascript吗?

我在网上商店的产品中添加了Pinterest PinIt按钮.这就是Pinterest要我这样做的方式:

http://business.pinterest.com/widget-builder/#do_pin_it_button

我已成功实现了页面上所有产品的按钮,并且工作正常.关于他们希望我添加的脚本,我真的需要吗?它是为了什么?可以不包含它吗?我想知道因为它似乎干扰了我正在做的一些AJAX提交(不确定原因)并且按钮似乎在没有脚本的情况下工作正常.

javascript pinterest

3
推荐指数
1
解决办法
3357
查看次数

PHP - 使用==(等于)和===(相同)的意外行为

我的代码中有以下内容:

$mixed = array();
$mixed[0] = "It's a zero!";
$mixed['word'] = "It's a word!";   

foreach ($mixed as $key => $value) {
  if ($key == 'word') {             
    echo $value.'<br />';
  } 
}
Run Code Online (Sandbox Code Playgroud)

以上由于某种原因打印出"它是零!" 和"这是一个字!".我期待它只打印"这是一个字!".这是为什么??我觉得我错过了一些重要的东西.当我===在if语句中使用时,它按预期工作,换句话说它只打印"这是一个字!".我知道相等和相同的运算符之间存在差异,但第一个例子不等于它吗?

php

2
推荐指数
1
解决办法
361
查看次数

CakeEmail :: viewVars - CakePHP

我试图根据以下配置设置变量$ purchase以在我的电子邮件模板中使用:

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail();
$email->emailFormat('html');
$email->template('new_order_email', 'default');
$email->from(array('info@mydomain.com' => 'A Great Site'));
$email->to($this->request->data['email']);
$email->subject('Order details');
$email->viewVars($purchase);
$email->send();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在模板中使用$ purchase变量时,这不起作用.相反,发送的电子邮件包含以下错误:

注意(8):未定义的变量:购买[APP/View/Emails/html/new_order_email.ctp,第2行]

这表明$ purchase不可用,即使我使用CakeEmail设置了该变量:viewVars(); 功能.我有这个问题的任何想法?

email cakephp cakephp-2.0

0
推荐指数
1
解决办法
7512
查看次数