[英]Laravel - Storing multiple images in the database in Single Row
如何在laravel的數據庫中存儲多個圖像? 我有這段代碼,但是我無法傳遞任何數據,它只能傳遞一個數據。
我想在我的圖像行中實現這種數據庫格式
控制者
public function store(Request $request)
{
//Handle File Upload
if($request->hasFile('city')){
// Get FileName
$filenameWithExt = implode(' , ',$request->file('city')->getClientOriginalName());
//Get just filename
$filename = pathinfo( $filenameWithExt, PATHINFO_FILENAME);
//Get just extension
$extension = implode(' , ',$request->file('city')->getClientOriginalExtension());
//Filename to Store
$fileNameToStore = $filename.'_'.time().'.'.$extension;
//Upload Image
$path = implode(' , ',$request->file('city')->storeAs('public/city_image',$fileNameToStore));
}else{
$fileNameToStore='noimage.jpg';
}
$citi = new City;
$citi->city =$fileNameToStore;
$citi->save();
return redirect('/lugar')->with('success', 'Data Inserted');
}
視圖
<td> {{Form::file('city[]')}} </td>
您將要對其進行JSON編碼。 使該數據庫字段為long text
並在將值保存到數據庫時執行以下操作:
$citi->city = json_encode($fileNameToStore);
當您想讀取該值時,您將執行以下操作:
json_decode($citi->city);
現在,我建議做一個圖像數組並對它們進行編碼,然后解碼就可以了:
json_decode($obj->city, TRUE);
然后您將獲得陣列
您應該將圖像循環存儲。 city字段是一個數組。
我修改了您的功能。 讓我知道我做錯了什么。
public function store(Request $request)
{
if($request->hasFile('city'))
{
$file = Input::file('city');
foreach($file as $key => $part)
{
$filename = $part->getClientOriginalName();
$filenameWithExt = implode(' , ',$filename);
$filename = pathinfo( $filenameWithExt, PATHINFO_FILENAME);
$extension = implode(' , ',$part->getClientOriginalExtension());
$fileNameToStore[$key] = $filename.'_'.time().'.'.$extension;
$path = implode(' , ',$part->storeAs('public/city_image',$fileNameToStore[$key]));
}
// converting images names array to comma separate string
$fileNameToStore = implode (", ", $fileNameToStore);
}else{
$fileNameToStore = null; // if no image found then it should be null
}
$citi = new City;
$citi->city = $fileNameToStore;
$citi->save();
return redirect('/lugar')->with('success', 'Data Inserted');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.