[英]Laravel backend not saving to database
我正在使用laravel作為后端API REST上傳文件。 當我在前端上傳文件時,它會在響應中發送200 OK狀態代碼,但不會將其保存到數據庫中。 我發現有些奇怪的是,響應中的數據為空,文件數組位於響應的config部分。
這是處理這種情況的控制器
public function makeFile(Request $request)
{
$fileArray = [];
if (isset($request->files) && is_array($request->files)) {
foreach ($request->files as $key => $fileEntity) {
$file= new File();
$file->file=$fileEntity['file'];
$file->shipment_id=$fileEntity['shipment_id'];
$file->user_id=$fileEntity['user_id'];
$file->date=date('Y,m,d,G,i,s');
$file->fileName=$fileEntity['fileName'];
$file->fileType=$fileEntity['fileType'];
$file->status=$fileEntity['status'];
$file->save();
$fileArray[] = $file;
}
}
return response()->json($fileArray);
}
這是我的表格
<uib-tab index="1" heading="Files">
<div class="row">
<label>Add File</label>
<ul class="shipment__files">
<li class="col-xs-12 col-md-6" ng-repeat="file in shipment.shipmentObject.files">
<a href="#"><img ng-src="{{ file.iconURL }}" width="60"></a>
<div class="filename"><a href="#">{{ file.fileName }}</a></div>
<div class="date">{{ file.date }}</div>
<div class="uploader">{{ file.user_id }}</div>
</li>
</ul>
</div>
<!-- <form>
<input type="file" name="" ng-model="shipment.shipmentObject.file">
<button class="btn btn-primary" ng-click="shipment.makeFile(shipmentObject.file)" >Upload File</button>
<div>aa {{ newFile }}</div>
</form> -->
<div>
<input data-my-Directive type="file" name="file" ng-model="shipment.shipmentObject.file">
<p>
post request with this data:
</p>
<pre ng-repeat="(key, value) in fileLog">
{{key}} {{ value }}
</pre>
</div>
</uib-tab>
因此,由於條件語句不匹配,您將得到一個空響應,因此您只是返回創建的空$fileArray
:
if (isset($request->files) && is_array($request->files))
檢查文件是否正確的正確方法是:
if($request->hasFile('file'))
您需要了解的所有信息都可以在以下官方文檔中找到:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.