#laravel
#laravel
Вопрос:
Я боролся с этой проблемой уже несколько часов. Моя проблема в том, что у меня есть URL-адрес изображения, сохраненный в моей базе данных, и когда я его извлекаю, я пытаюсь отобразить его в своем index.blade.php . Странная часть в том, что я использовал тот же код в более старом проекте, и он работал, но я включил более старый проект, и он там тоже больше не работает. Я сделал php artisan storage:link
, и из того, что я вижу, ссылка правильная, но изображения отображаются как поврежденные, я искал различные решения, но все это ведет в тупик, потому что URL просто не хочет отображать изображение. 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>
Как я вызываю это из моего Companiescontroller
public function index(): Renderable
{
$companies = $this->company->all();
return view('company.index', compact('companies'));
}
Как я сохраняю URL-адрес своего изображения
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');
}
Я не уверен, достаточно ли этого, но я предполагаю, что это основные части.
Комментарии:
1. По умолчанию
php artisan storage:link
создайте символическую ссылку сstorage/app/public
помощью so, переместите изображение изstorage/public
вstorage/app/public
. Затем вы можете получить доступ черезhttp://127.0.0.1:8000/storage/vsX9ihmRknGWLXtNRmxgCXV3ckqhlFoBlyuMoejB.png
2. Спасибо, вы спасатель
Ответ №1:
По умолчанию php artisan storage:link
создайте символическую ссылку с storage/app/public
помощью so, переместите изображение из storage/public
в storage/app/public
. Затем вы можете получить доступ через http://127.0.0.1:8000/storage/vsX9ihmRknGWLXtNRmxgCXV3ckqhlFoBlyuMoejB.png