我是新来的Laravel。我正在寻找一种方法来插入一个值到特定的字段,如created_at
自动每当行插入到DB表。
我发现只有雄辩的
方式使用一些Model-
但我希望即使在使用QueryBuilder时也能插入一个值。有什么办法吗?
我看过这篇文章:查询生成器不插入时间戳
如有任何建议,将不胜感激。
提前谢谢你
可以在helpers中创建新的helper方法。php是这样的:
public function queryBuilderInsert($table, $data, $deleted_at = false)
{
$data['created_at'] = \Carbon::now();
$data['updated_at'] = \Carbon::now();
$deleted_at ? $data['deleted_at'] = null :;
\DB::table($table)->insert($data);
}
public function queryBuilderUpdate($builder, $data)
{
$data['updated_at'] = \Carbon::now();
$builder->update($data);
}
然后您可以像这样构建查询:
对于insert
使用queryBuilderInsert
方法
$example_data = [
'name' => 'Name',
'email'=> 'Email'
];
queryBuilderInsert('users',$example_data);
如果在表上使用软删除,则可以使用queryBuilderInsert
queryBuilderInsert('users',$example_data, true);
对于Update
,可以进行查询,然后调用queryBuilderUpdate
方法
$example_update_data = [
'name' => 'Name',
'email'=> 'Email'
];
$builder = \DB::table('users')->where('id',1);
queryBuilderUpdate($builder,$example_update_data);
它将设置updated_at
日期并进行更新
您之前已经说过要使用Model::插入GetId()
,但问题是这个方法没有使用Eloquent。这是一个查询生成器方法。所以,用create()
代替:
$object = Model::create($data);
$id = $object->id;
如果仍要使用insertGetId()
,则需要手动添加created\u处的
时间戳:
$data['created_at'] = now();
Model::insertGetId($data);
或者您可以将
CURRENT\u TIMESTAMP
设置为TIMESTAMP列的默认值,但最好使用Elount来处理这个问题。
我正在使用Query builder插入数据所有字段都已插入,但像created_at和updated_at这样的时间戳没有插入,它们都具有默认的0:0:0值
我们正在开发一个应用程序,我们将在运行时生成表单。现在我们需要对动态表单的数据执行CRUD操作。 我们想通过写入将记录保存到表中 javaSpring引导提供查询生成器像php CodeIgniter查询生成器 我正在尝试使用JOOQ来实现同样的目标。 上述代码的问题在于: 两个列表列和值的顺序应相同,并且 值中的数据类型应与代码中的表列数据类型匹配 注意:我们不能在代码生成中使用JOOQ,因为所
数据库中有三个表 用户 地点 location_user(列:user_id,location_id) 我正在从用户注册表的多个下拉字段中的位置表中获取记录。填写表单时,用户必须从下拉列表中选择值,然后提交。 提交表单后,我想将数据插入用户表。同时,我还想把用户表中的id插入location_useruser_id列中,把用户注册表下拉列表中的位置选择值插入location_user表locati
我有这个生成动态字段的示例代码。 我的问题是我不知道如何将数据插入数据库。 我尝试过内爆,但结果不是我想要的格式。 这是我的专栏(id、姓名、糖果、水果、饮料) 所以如果我生成3行,它应该像这样插入 事实上,我不知道这是否可能。谢啦 小提琴 https://jsfiddle.net/jqj1h4vb/2/
问题内容: 当我尝试使用此查询时,我收到一条错误消息,指出Perameter电子邮件不存在,我确定变量:email,login_pass,payment_method,operateur是有效的并且存在。 我尝试删除引号,但我得到了 您的Sql语法有错误,请在第1行的’:email,:login_pass,:payment_method,:avecpuce)’附近查看与您的SQL Server对应
我在这里尝试使用光标,我想知道如何访问选择列中的光标字段? 我有一个如下的实现, 我想明白,这个实现有什么问题。 谢谢你。