php - ErrorException strtotime() 期望参数 1 是字符串,给定数组
问题描述
谁能帮我?这是我的控制器,当我尝试存储“购买”数据时,它显示此消息strtotime() 期望参数 1 为字符串,给定数组
错误出现在$purchase->date = date('Y-m-d', strtotime($request->date));
并且$purchaseDetail->date = date('Y-m-d', strtotime($request->date));
public function store(Request $request){
if($request->category_id == null){
return redirect()->back()->with('error', 'Please Purchase The Product');
} else{
// Multipale Data Insert start //
$purchase = new purchase();
$purchase->purchase_no = $request->purchase_no;
$purchase->date = date('Y-m-d', strtotime($request->date));
$purchase->description = $request->description;
$purchase->status = '0';
$purchase->created_by = Auth::user()->id;
DB::transaction(function() use($request,$purchase) {
if($purchase->save()) {
// Purchase Details Insert Start //
$category_id = count($request->category_id);
for ($i=0; $i < $category_id; $i++) {
$purchaseDetail = new purchaseDetail();
$purchaseDetail->date = date('Y-m-d', strtotime($request->date));
$purchaseDetail->purchase_id = $purchase->id;
$purchaseDetail->supplier_id = $request->supplier_id[$i];
$purchaseDetail->category_id = $request->category_id[$i];
$purchaseDetail->product_id = $request->product_id[$i];
$purchaseDetail->buying_qty = $request->buying_qty[$i];
$purchaseDetail->unit_price = $request->unit_price[$i];
$purchaseDetail->buying_price = $request->buying_price[$i];
$purchaseDetail->discount_amount = $request->discount_amount[$i];
$purchaseDetail->ppn = $request->ppn[$i];
$purchaseDetail->status = '0';
$purchaseDetail->save();
}
}
});
}
// Redirect
return redirect()->route('purchase.view')->with('success', 'Purchase Added Successfully');
}
您好,我尝试更改$purchase->date = date('Y-m-d', strtotime($request->date));
为$purchase->date = $request->date;
但结果是TypeError 传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定字符串,在 D:\Project Laravel\alc-pos\vendor\ 中调用laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php 在第 869 行
解决方案
至于我的选择,您在保存到数据库时不能格式化您的日期。相反,您可以在将其从数据库输出到刀片模板时对其进行格式化。
无论如何检查一下$request->date
,似乎是一个数组。
您可以像这样在模型中使用 Laravel 访问器来格式化您的日期(示例):
public function getFormattedStartDateAttribute()
{
return $this->start_date->format('d-m-Y');
}
然后像这样在刀片模板中调用它(示例):
<input type="text" name="start_date" class="form-control" value="{{$trip->formatted_start_date}}">
有关 Laravel 突变器和访问器的更多信息:Laravel Docs
你也可以做另一件事。在你的schema::create
品牌:
$table->date('date_name_column');
然后像下面这样保存它:
$purchaseDetail->date = $request->input('date');
这样,您数据库中的日期将保存如下:YYYY-MM-DD
希望能帮助到你!
推荐阅读
- terraform - aws_alb_listener 的 Terraform 如何在 type="forward" 的默认操作中添加多个 target_group_arn
- python - 最终分类FC层的输出可以是负数吗?
- wordpress - 简码中的 WP_Error 以显示条款
- nlp - 将拼写错误的单词转换为实际单词
- asp.net - 在容器化的 .NET Framework Web 应用程序中更改配置的最佳方法是什么?
- spring-boot - 管理每个套接字消息的数据库调用 Spring Boot
- django - 如何计算 Django 中两个关系之间的数据?
- python - 如何对热图进行排序以显示最高相关性?
- reactjs - React 测试库 - 屏幕调试提供与浏览器不同的输出
- php - 无法使用 php 插入 MySQL 数据库