【问题标题】:Laravel 8, image url rerieved from database does not return imageLaravel 8,从数据库中检索的图像 url 不返回图像
【发布时间】:2020-10-25 12:34:48
【问题描述】:

我已经为这个问题苦苦挣扎了好几个小时。我的问题是我的数据库中保存了一个图像 url,当我检索它时,我尝试在我的 index.blade.php 中显示它。奇怪的是我在一个旧项目中使用了相同的代码并且它工作了,但是我打开了旧项目,它也不再在那里工作了。我已经完成了php artisan storage:link,从我看到的链接是正确的,但图像显示为损坏,我已经查找了各种解决方案,但所有这些都导致了死胡同,因为网址只是不想显示图像。图片url保存在这种形式http://127.0.0.1:8000/storage/public/vsX9ihmRknGWLXtNRmxgCXV3ckqhlFoBlyuMoejB.png

我的 index.blade.php 正文

  <tbody>
    @foreach($companies as $company)
        <tr>
            <td scope="row">{{$company->id}}</td>
            <td>{{$company->name}}</td>
            <td>{{$company->email}}</td>
            <td><img class="class='img-fluid rounded mb-3 mb-lg-0 ml-md-0" src="{{$company->logo}}"></td>
            <td>{{$company->url}}</td>
            <td>
                <a href="{{route('company.edit', $company->id)}}" class="float-left">
                    <button type="button"
                            class="btn btn-primary mr-2">{{__('Edit')}}</button>
                </a>
                <form action="{{route('company.delete',$company->id)}}" method="POST"
                      class="float-left">
                    {{method_field('DELETE')}}
                    @csrf
                    <button type="submit"
                            class="btn btn-danger btn-sn">{{__('Delete')}}</button>
                </form>
            </td>
        </tr>
    @endforeach
    </tbody>

我的公司控制员如何称呼它

 public function index(): Renderable
{
    $companies = $this->company->all();

    return view('company.index', compact('companies'));
}

我如何存储我的图片网址

   public function store(Request $request): RedirectResponse
    {
    $request->validate([
        'name' => 'required',
        'email' => '',
        'logo' => 'dimensions:min_width:100,min_height:100',
        'url' => ''
    ]);
    $parameters = $request->all();
    if ($request->logo !== null) {
        $image = $request->logo->store('public');
        $parameters['logo'] = URL::to('/') . '/storage/' . $image;
    }
    $this->company->create($parameters);

    return redirect()->route('company.index');
}

我不确定这是否足够,但我想这些是主要部分。

【问题讨论】:

  • 默认情况下php artisan storage:link 使用storage/app/public 创建符号链接,因此将图像从storage/public 移动到storage/app/public。然后就可以通过http://127.0.0.1:8000/storage/vsX9ihmRknGWLXtNRmxgCXV3ckqhlFoBlyuMoejB.png访问了
  • 谢谢你,你是救命稻草

标签: laravel


【解决方案1】:

默认情况下php artisan storage:link 使用storage/app/public 创建符号链接,因此将您的图像从storage/public 移动到storage/app/public。然后就可以通过http://127.0.0.1:8000/storage/vsX9ihmRknGWLXtNRmxgCXV3ckqhlFoBlyuMoejB.png访问了

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 1970-01-01
    • 2017-09-02
    • 2021-11-29
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多