小编JD *_*cks的帖子

CakePHP Model :: save()将字段重置为默认值

当我在MySQL数据库中保存(更新)字段时Model->save(),如果我没有为具有默认值设置的字段指定值,则将其重置为默认值.

即使已经存在该字段的值,这也是这样做的.

例如,考虑以下代码:

$existing_user = $this->CustomCart->User->field('id',array('User.email'=>$this->data['User']['email']));
if($existing_user)
{
    //update information
    $this->CustomCart->User->id = $existing_user;
}
$this->CustomCart->User->save($this->data);
Run Code Online (Sandbox Code Playgroud)

在此代码中,它会检查用户是否已存在传递的电子邮件地址.如果是,请使用传递的信息更新该用户,否则创建新用户.

但是我在users表中有一个字段叫做role默认值customer

没有设置值role,$this->data因此在创建新用户时,role会自动设置为customer.

但是,在更新现有用户时,即使他们还有像" admin " 这样的角色,它仍会将值重置为customer.

我不知道为什么会这样.我没有专门设置的其他字段(没有默认值)保持其值.那么为什么默认值的字段会被重置?

cakephp model cakephp-1.3

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

将类型数组简化为单一类型?

我正在开发一个定义了规则列表的库。我想把这个规则列表变成一个接口,让一些东西遵守规则。

我最终得到了一个结构与此类似的列表:

const rules = [
    {} as { foo: 1 | 2 | 3},
    {} as { bar: 4 | 5 | 6},
]
type T = typeof rules
Run Code Online (Sandbox Code Playgroud)

T最终的类型是联合数组,如下所示:

type T = ({
    foo: 1 | 2 | 3;
} | {
    bar: 4 | 5 | 6;
})[]
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是一个合并它们的界面:

type T = {
  foo?: 1 | 2 | 3
  bar?: 4 | 5 | 6
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以实现这一点吗?

typescript

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

PHP:买两个并节省50美元?

好吧,我的客户想要在购物车中显示购买两项功能,如果他们希望在购物车中有1种特定商品类型显示其他特定商品类型,那么如果他们同时购买它们可以节省50美元.我试图围绕什么是设置它的最佳方式,所以它不容易被黑客攻击(即:将两者都添加到购物车然后删除一个并保持折扣)

有人在理论上有一些一般性的想法吗?

谢谢.

php php4

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

PHP:使用PHP将文件保存到不同的根目录?

通过move_uploaded_file()我用PHP保存上传的文件时确定我不能使用绝对URL我必须使用相对的URL.我的站点有2个根目录,一个用于http端,另一个用于https端:httpdocs和httpsdocs.因此,如果我的脚本在https端,如何将文件保存到http端的位置?

谢谢!

更新 确定好像我使用错误的绝对路径约定我这样做:

$dir = 'https://www.mydomain.com/masonic_images/';
move_uploaded_file($_FILES['blue_image']['tmp_name'], $dir.$new_name);
Run Code Online (Sandbox Code Playgroud)

php php4

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

MySQL:ORDER BY stat/age?

我的产品表中有一个 int字段,product_stat每次查看产品时都会增加.我还有一个名为的日期字段product_date_added.

为了计算产品每天的平均访问量,您需要使用当前日期和产品添加日期来计算产品存在的天数.然后将产品统计除以其存在的天数以获得每天的平均访问量.

好的但我想做的是选择一些产品并按每天访问量排序 DESC

我怎样才能做到这一点?

谢谢!!!

mysql sql sql-order-by

0
推荐指数
2
解决办法
615
查看次数

如何在PHP4中将类属性设为私有?

在PHP4中没有公共,私人等.所以我想知道是否有某种解决方法,以便我可以将类的属性设为私有,并且只能通过getter/setter访问

谢谢!!

php oop php4

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

jQuery colorbox定位图像错误(不居中)

我在这个页面上使用jQuery插件Colorbox来处理一些图像.

如果你看一下中间的主要产品图片,就在它下面是一些看起来很像宝丽来的缩略图.如果单击其中一个,则会弹出一个图像Colorbox

如果您使浏览器窗口宽度约为800px(页面内容的宽度),则弹出窗口将居中.然而,随着您扩大浏览器窗口,弹出窗口将越来越向右移动(不会停留在中心).

有谁知道如何解决这个问题?

javascript css jquery colorbox

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

什么是保护表单免受垃圾邮件发送者保护的最简单方法?

什么是阻止垃圾邮件发送者探测表单的最简单方法(最好不要阻止真实用户)

security spam-prevention

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

PDO课程的最佳实践?

我想创建一个PDO类来处理数据库连接.

这是我有的:

require('php/packages/store/store_db_settings.php');

class store_pdo
{
    private $DBH; // Data Base Handler

    function __construct() 
    {
        $DBH = new PDO(DB_DSN,DB_USER,DB_PASSWORD);
    }

    public function getHandler()
    {
        return $DBH;
    }

}
Run Code Online (Sandbox Code Playgroud)

我认为这似乎没问题,但是我习惯于只使用类似的东西,mysql_query而且不确定将来会遇到什么问题.所以我认为这里的经验可以提供指导.

我有足够的东西吗?我应该使我的类Singleton,还是使用静态函数?有最好的做法吗?

我不想这样做,然后我有几个其他类使用它,发现我应该用不同的方式写它.

PS我只是注意到best-practices标签不再被允许......这是否意味着现在也不鼓励这样的问题?

php pdo

0
推荐指数
2
解决办法
6738
查看次数

安装光盘如何跟踪安装计数?

许多安装光盘只允许您安装软件X次.

然而光盘是无国籍的.安装后它们不变(AFAIK).所以这让我很困惑.

他们如何跟踪?

installation anti-piracy

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