Я не могу выбрать правильный URL-адрес изображения для отображения в представлении с помощью ресурса. Сгенерированный URL требует storage
, который отсутствует в нем, когда я использую функцию asset
, и мне нужно вручную добавить storage
в путь, например asset('storage/' . $post->image)
Я не понимаю почему Laravel не добавляет storage
автоматически?
хранилище символической ссылки
Я создал символическую ссылку папки хранилища с помощью следующей команды
php artisan storage:link
Вопрос:
Мне нужна папка storage
, которая должна быть динамически добавлена в путь, поэтому мне нужно передать только $post->image
.
Контроллер
public function store(PostRequest $request)
{
// upload the image to storage
$image = $request->image->store('posts', 'public');
// create the post
Post::create([
'title' => $request->title,
'description' => $request->description,
'content' => $request->content,
'image' => $image,
]);
// redirect with flash message
return redirect(route('posts.index'))->with('success', 'Post is created');
}
DB image
Путь к хранимой колонке
posts/ibexiCvUvbPKxzOLSMHQKPpDq7eZXrFA0stBoPfw.jpeg
Просмотр
<tbody>
@foreach($posts as $post)
<tr>
<td>
<img src="{{asset($post->image)}}" width="60" height="60" alt="">
</td>
<td>{{ $post->title }}</td>
</tr>
@endforeach
</tbody>
Путь к хранилищу
HTML Источник
Как вы можете видеть в приведенных выше ссылках, чтобы получить правильный URL Я должен добавить storage
в asset('storage/'. $post->image)