【发布时间】:2021-02-06 07:12:43
【问题描述】:
谁能帮帮我?这是我的控制器,当我尝试存储“购买”数据时,它显示此消息 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\ 中调用第 869 行的 Grammars\Grammar.php
【问题讨论】:
-
好吧,看起来
$request->date是一个数组。这段代码没什么好说的,错误似乎很明显。 -
正如@Jeto 所说...检查 $request->date 的类型。将任何响应放入数组中并不罕见(例如 AWS 服务)。即使只有一个元素。这标准化了 API 行为,因此即使只有一个元素,您也总是可以期待数组类型。
-
@Jeto 怎么解决?