Новичок в Laravel и чувствую, что мне здесь не хватает чего-то важного. Я загружаю и сохраняю несколько файлов в папку и сохраняю массив имен изображений в базу данных (достаточно просто). В настоящее время сохраняются имена изображений в формате json_encode()
, чтобы они форматировались примерно так ["kittyTest.jpeg","kitty_2.jpeg","kitty_3.jpeg"]
. Поэтому, когда я пытаюсь распечатать их в виде, я получаю их в формате json и пытаюсь отобразить их в формате массива или каким-то образом использовать имя файла для исходного изображения. Любая помощь или руководство будет высоко ценится.
Контроллер
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Form;
use DB;
class FormController extends Controller
{
public function index()
{
$images = DB::select('select * from forms');
//dd(json_decode($images[0]->filename));
return view('index', ['images'=> $images]);
}
public function create()
{
return view('create');
}
public function store(Request $request)
{
$this->validate($request, [
'filename' => 'required',
'filename.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);
if ($request->hasFile('filename')) {
foreach ($request->file('filename') as $image) {
$name = $image->getClientOriginalName();
$image->move(public_path().'/images/', $name);
$data[] = $name;
}
}
$form = new Form();
$form->filename = json_encode($data);
$form->save();
return back()->with('success', 'Your images have been uploaded');
}
}
Просмотр
<body>
<div class="container">
<h3 class="jumbotron">Laravel Multiple File Upload</h3>
<p>Here are the images we have in the database</p>
<ul class="list-group">
@foreach ($images as $image)
<li class="list-group-item">
{{ $image->filename }}
</li>
@endforeach
</ul>
</div>
</body>