【发布时间】: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