使用 vue js 时在 laravel 中为 foreach 提供的参数无效
Posted
技术标签:
【中文标题】使用 vue js 时在 laravel 中为 foreach 提供的参数无效【英文标题】:invalid argument supplied for foreach in laravel while working with vue js 【发布时间】:2022-01-24 01:42:19 【问题描述】:我想将我的数据存储在数据库中以获取提款详细信息和提款费用表。对于 Cashoutdetails,数据被存储在哪里,因为它返回了现金支出表的错误。下面是我的控制器代码--
$date = Carbon::parse($request->input('recorded_date'));
if($request->hasFile('bank_receipt'))
$file = $request->file('bank_receipt');
$extension = $file->getClientOriginalExtension(); // getting image extension
$filename =time().'.'.$extension;
$file->move('../storage/app/cashoutdetails/'. $date->year .'/' . $date->format('M') . '/' ,$filename);
$cashout_details = CashOutDetail::create([
'user_id' => Auth::user()->id,
'store_id' => $request->store_id,
'recorded_date' => $request->recorded_date,
'closing_report_total' => $request->closing_report_total,
'total_deposit' => $request->total_deposit,
'difference' => $request->difference,
'prepared_by' => $request->prepared_by,
'deposited_by' => $request->deposited_by,
'deposit_date' => $request->deposit_date,
'reference_number' => $request->reference_number,
'bank_receipt'=> $filename,
'comments' => $request->comments
]);
$comments = $request->cashoutexpenses;
//return $comments;
if (! empty($comments))
//return $comments;
foreach($comments as $c => $value)
$cashout_comments = new CashOutExpenses;
$cashout_comments->cashout_id = $cashout_details->id;
$cashout_comments->amount = $c['amount'];
$cashout_comments->comment = $c['comment'];
$cashout_comments->save();
else
return 'test';
return response()->json([
'message' => 'Details added!',
], 201);
如果我检查 $cmets
它给我的结果是 "cashoutexpenses":["amount":"100","comment":"exp"]
就像我运行 forloop 一样,它给出的结果是为 foreach() 提供的无效参数
【问题讨论】:
【参考方案1】:全部需要 json_decode ,如下所示。
$cmets = json_decode($request->cashoutexpenses, true);
之前我只使用 json_decode 和一个参数,没有真正的关键字,这是行不通的
【讨论】:
【参考方案2】:我认为你应该先 json_decode 你的 $cmets 然后你可以使用 foreach 来处理它
【讨论】:
我使用过 json_decode 然后我得到回复 ["amount":"100","comment":"exp","amount":"299","comment":" exo2"] for $cmets .... 但是如果我运行循环,它会返回相同的错误。(无效参数)请帮助 本例与本例相同,***.com/questions/70457463/…。解决方案是你在循环之前给出 if else以上是关于使用 vue js 时在 laravel 中为 foreach 提供的参数无效的主要内容,如果未能解决你的问题,请参考以下文章
Vue.js 和 laravel 的 delete 方法问题
如何在 laravel 应用程序中为单个 vue 组件实现 s-s-r?