首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Laravel中检索上传的图像。我创建了存储链接。但我不会work.Did错过什么吗?

无法在Laravel中检索上传的图像。我创建了存储链接。但我不会work.Did错过什么吗?
EN

Stack Overflow用户
提问于 2020-07-31 10:54:18
回答 2查看 40关注 0票数 0

图像显示为“图像描述”。如何检索数据库中的图像?除了图像之外,所有的工作都很顺利。

这是我的第一个项目。我找不到这个问题。有人能帮忙解决这个问题吗?

这是我的index.blade.php

代码语言:javascript
复制
<ul class="list-group list-group-horizontal-sm position-relative z-index-2 flex-row overflow-auto overflow-md-visble">
    @foreach($products as $p)
    <li class="list-group-item py-2 px-3 px-xl-4 px-wd-5 flex-horizontal-center shadow-on-hover-1 rounded-0 border-top-0 border-bottom-0 flex-shrink-0 flex-md-shrink-1">

        <a href="../shop/product-categories-7-column-full-width.html" class="d-block py-2 text-center">
            <img class="img-fluid mb-1 max-width-100-sm" src="/storage/admin/{{ $p ['prod_image_path'] }}" alt="Image Description">
            <h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_name'] }}</h6>
            <h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_price'] }}</h6>
        </a>
    </li>

    <li class="list-group-item py-2 px-3 px-xl-4 px-wd-5 flex-horizontal-center shadow-on-hover-1 rounded-0 border-top-0 border-bottom-0 flex-shrink-0 flex-md-shrink-1">
        <a href="../shop/product-categories-7-column-full-width.html" class="d-block py-2 text-center">
            <img class="img-fluid mb-1 max-width-100-sm" src="/storage/admin/{{ $p ['prod_image_path'] }}" alt="Image Description">
            <h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_name'] }}</h6>
            <h6 class="font-size-14 mb-0 atext font-weight-semi-bold">{{ $p ['prod_price'] }}</h6>
        </a>
    </li>
    @endforeach
</ul>

这是我的管理员\产品控制器。

代码语言:javascript
复制
    <?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Product;
use App\Category;

class ProductsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

         
    public function index()
    {
        $arr['products'] = Product::all();
        return view('admin.products.index')->with($arr);
    }

   

   
    public function create()
    {
        return view('admin.products.create');
    }

  
    public function store(Request $request, Product $product, Category $category)
    {

        if($request->prod_image_path->getClientOriginalName())
        {
            $ext =$request->prod_image_path->getClientOriginalName();
            $file = date('YmdHis').rand(1,99999).'.'.$ext;
            $request->prod_image_path->storeAs('public/admin',$file);
        }else{
            $file ='';
        }

        $product-> prod_name = $request-> prod_name;
        $product-> prod_meta_title = $request-> prod_meta_title;
        $product-> prod_description = $request-> prod_description;
        $product-> prod_category = $request-> prod_category;
        $product-> prod_price = $request-> prod_price;
        $product-> prod_discount = $request-> prod_discount;
        $product-> prod_image_path = $file; 
       
        $product->save();
        return redirect()->route('admin.products.index');
       
    }

  
    public function show($id)
    {
       $product = Product::find($id);
       return view ('user.show',['product'=>$product]);
    }
  

    public function edit(Product $product)
    {
        $arr['product'] = $product;
        return view('admin.products.edit')->with($arr);

    }

   
    public function update(Request $request, Product $product)
    {
        if($request->prod_image_path->getClientOriginalName())
        {
            $ext =$request->prod_image_path->getClientOriginalName();
            $file = date('YmdHis').rand(1,99999).'.'.$ext;
            $request->prod_image_path->storeAs('public/admin',$file);
        }else{
            $file ='';
        }
        $product-> prod_name = $request-> prod_name;
        $product-> prod_meta_title = $request-> prod_meta_title;
        $product-> prod_description = $request-> prod_description;
        $product-> prod_category = $request-> prod_category;
        $product-> prod_price = $request-> prod_price;
        $product-> prod_discount = $request-> prod_discount;
        $product-> prod_image_path = $file;
        $product->save();
        return redirect()->route('admin.products.index');
    }

    
    public function destroy($id)
    {
       Product:: destroy($id);
       return redirect()->route('admin.products.index');
    }
}

这是我的用户ProductsController。

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;

class ProductsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

     
    public function index()
    {
        $products = Product::get();
        return view ('index')->with(compact('products'));
      
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
      //  return view('admin.products.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request, Product $product)
    {
        // $product-> prod_name = $request-> prod_name;
        // $product->save();
        // return redirect()->route('admin.products.index');
       
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }


    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        // $arr['product'] = $product;
        // return view('admin.products.edit')->with($arr);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Product $product)
    {
        // $product-> prod_name = $request-> prod_name;
        // $product->update();
        // return redirect()->route('admin.products.index');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        // Product::destroy($id);
        // return redirect()->route('admin.products.index');
    }
}

我的图像路径如下所示。

EN

回答 2

Stack Overflow用户

发布于 2020-07-31 12:32:17

如果您已经创建了存储链接,那么请尝试像下面这样获取映像

代码语言:javascript
复制
<img class="img-fluid mb-1 max-width-100-sm" src="{{ url(storage/admin/'.$p ['prod_image_path'] ) }}" alt="Image Description">
票数 0
EN

Stack Overflow用户

发布于 2020-07-31 12:45:13

嗨,从你的屏幕截图,看起来你可以成功地将图像存储在存储文件夹中。

你现在的问题是,如果我理解正确的话,你不知道如何打印图像路径

您可以在下面尝试:尝试创建一个符号链接

https://laravel.com/docs/7.x/filesystem#the-public-disk

命令

代码语言:javascript
复制
php artisan storage:link

之后,任何内部存储/app/public都将访问公共/存储,以便它可以在外部呈现。

如果图像路径被正确地保存到db,则可以创建如下所示的访问器

代码语言:javascript
复制
public function getProdImagePathAttribute($value)
    {
        return asset("storage/".$value) ;
    }

用刀刃渲染

代码语言:javascript
复制
<img src="{{$model->prod_image_path}}" >

谢谢,我就是这样保存文件图像并打印出来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63190534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档