【发布时间】:2022-01-22 16:00:25
【问题描述】:
我想为报告存储创建一个 API,并且可以选择添加多个违规者。
我有一个问题,当我添加一个违规者时,在 POSTMAN 中它显示错误“调用成员函数 getClientOriginalName() on null”。
如何解决?或者如何正确地创建一个具有一对多关系的附加数据的 API?
以下,我自己做的代码;
Controller.php
public function store(ReportRequest $request)
{
try {
$report = Report::create([
'category_id' => $request->category_id,
'user_id' => Auth::user()->id,
'title' => $request->title,
'description' => $request->description,
'incident_date' => $request->incident_date,
'injured_victims' => $request->injured_victims,
'survivors' => $request->survivors,
'dead_victims' => $request->dead_victims,
'location' => $request->location,
'latitude' => $request->latitude,
'longitude' => $request->longitude
]);
$data[] = array(
'violator_photo' => $request->file('violator_photo'),
'violator_name' => $request->violator_name,
'violator_age' => $request->violator_age,
'violator_phone' => $request->violator_phone
);
foreach ($data as $key ) {
$photo = $key['violator_photo'];
$fileName = time().'_'.$photo->getClientOriginalName();
$filePath = $photo->storeAs('images/violators', $fileName, 'public');
Violator::create([
'report_id' => $report->id,
'name' => $key['violator_name'],
'photo' => $filePath,
'age' => $key['violator_age'],
'phone' => $key['violator_phone'],
]);
}
return response()->json([
'status' => '200',
'message' => 'success',
'data' => $report,
]);
} catch (\Exception$err) {
return $this->respondInternalError($err->getMessage());
}
}
【问题讨论】:
标签: php laravel api eloquent laravel-8