gpt4 book ai didi

php - 如果 firstOrNew 是 first 或 new,如何使用

转载 作者:搜寻专家 更新时间:2023-10-31 21:24:37 25 4
gpt4 key购买 nike

我想像这样使用 firstOrNew:

table::firstOrNew(['ip'=>'15.25.36.12', 'linke'=>'http://example.com'])
->where('created_at','>=',date('Y-m-d H:i:s', time()-86400);

我用了这个:

    $data = table::where('ip', '15.25.36.12')->where('link','http://example.com')->
where('created_at','>=', date('Y-m-d H:i:s', time()-86400));
if(!$data->exists())
{
$data = new table;
$data->field = 'foo';
$data->save();
}

但是效果不是很好!因为它添加了 2 行相同的

最佳答案

为了说明,firstOrNew 在数据库中搜索具有给定信息的记录。如果找到,则返回包含记录信息的模型实例,否则只会创建一个新的模型实例,它不会保存内容,为此您必须手动保存。

例子

// Assuming that this record does not exist in database
$a = Table::firstOrNew([
'name' => 'John Doe',
'age' => 16
]);

$a->nickname = "jDoe";
$a->save(); // Save the record to the database using insert

这使您有机会在保存之前向对象添加其他相关信息。

为了立即创建记录然后使用firstOrCreate 函数。它还将返回一个模型实例,但也会同时创建记录。现在,如果您保存它,它将触发更新查询。

例子

// Assuming that this record does not exist in database
$a = Table::firstOrCreate([
'name' => 'John Doe',
'age' => 16
]);

$a->nickname = "jDoe";

// Fires a update query as opposed to insert query in above example
$a->save();

关于php - 如果 firstOrNew 是 first 或 new,如何使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39054463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com