我必须做一个网上购物网站,我必须在我的产品的表单内进行多次图像上传,然后在我的视图中显示为幻灯片。我尝试了5个教程或它们的概念,但都不起作用。我很沮丧,所以如果你们知道什么,给我打电话。我希望找到最简单和直接的方式在数据库中存储图像并显示它们。我不擅长后端的东西,但我正在努力学习诀窍。
如果你想知道我到目前为止做了什么,我有两张表连接在一起,这两张表是图像和食物。然后,图像表有一个外键,它将从食品表中获取id。这将帮助系统知道哪个图像指的是哪种食物。基于我到目前为止已经尝试过的教程和我尝试过的最好的教程,我把它上传到数据库中,但文件名只显示[]。我也检查了我的公共文件夹,但我找不到我在那里上传的文件。我试图在视图中显示它,但它抛出了一个混乱的错误。正是因为这个功能,我真的感到困惑和紧张。
这是我的控制器中的代码(getwelcome是我的索引):
public function getWelcome(Food $foods)
{
$data = Images::all();
return view('welcome', compact('foods', 'data'));
}
public function store(Request $request)
{
$foods = new Food([
'name' => $request->get('name'),
'description' => $request->get('description'),
'price' => $request->get('price'),
// column name => front-end name
]);
$foods->save();
if ($request->hasfile('filename')) {
foreach ($request->file('filename') as $image) {
$name = $image->getClientOriginalName();
$image->move(public_path() . '/images/', $name); // folder path
$data[] = $name;
}
}
$Upload_model = new Images;
$Upload_model->food_id = $foods->id;
$Upload_model->filename = json_encode($data);
$Upload_model->save();
session()->flash('success', 'Food successfully added.');
return redirect()->route('welcome');
}镜像迁移
Schema::create('images', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('food_id');
$table->String('filename');
$table->timestamps();
$table->foreign('food_id')
->references('id')
->on('food')
->onDelete('cascade');
});在我看来
@foreach($data as $image)
@foreach(json_encode($image->filename)as $picture)
<div class="mySlides fade">
<img src="{{ asset('/images'.$picture) }}" style="width:295px; height:295px">
</div>
@endforeach
@endforeach发布于 2021-01-04 07:00:16
您的错误是在视图中调用json_encode。该字段已经是一个字符串,您需要将其从JSON中“解码”为PHP可以使用的内容:
@foreach (json_decode($image->filename) as $image)
...{{ asset('images/'. $image) }}...发布于 2021-02-16 12:08:46
if ($files = $request->file('images')) :
foreach ($files as $file) :
$extension = $file->extension();
$imageName = time() . rand(1, 100) . '.' . $extension;
$file->storeAs('/public/image/product/multiple', $imageName);
$arr[] = $imageName;
endforeach;
$image = implode(",", $arr);
$product->m_image = $image;
else :
$image = '';
endif;https://stackoverflow.com/questions/65553692
复制相似问题