Проблемы с извлечением изображения из общей папки с отношениями один-к-одному

У меня возникли проблемы с получением изображения из общей папки, где в базе данных, у меня есть UserImage стол и personal_info стол, и они связаны друг с другом в отношениях один к одному. Я пытался использовать это, но он просто возвращает мне пустые результаты.

Вот коды:

HomeController:

public function getInfo($id) {
    $data = personal_info::where('id', $id)->get();
    $data3 = UserImage::where('user_id', $id)->get();
    return view('test',compact('data', 'data3'));

test.blade.php (где я показываю изображение)

@foreach ($data as $object)
    <b>Name: </b>{{ $object->Name }}<br><br>
    @foreach ($data3 as $currentUser)
    <img src="{{ asset('public/images/' . $currentUser->name ) }}">
    @endforeach
    @if ($data3->count())
        @foreach ($data3 as $currentUser)
        <a href="{!! route('user.upload.image', ['id' => $currentUser->user_id]) !!}">
            <button class="btn btn-primary">
                <i class ="fa fa-plus"></i>Upload Images
            </button>
        </a>
        @endforeach
    @else
        <a href="{!! route('user.upload.image', ['id' => $object->id]) !!}">
        <button class="btn btn-primary">
            <i class ="fa fa-plus"></i>Upload Images
        </button>
    @endif
@endforeach

Create1Controller:

public function store1(Request $request)
{
    $this->validate($request, [
        'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    if ($request->hasFile('file')) {
        $image = $request->file('file');
        $name  = $image->getClientOriginalName();
        $size  = $image->getClientSize();
        $id    = $request->user_id;

        $destinationPath = public_path('/images');
        $image->move($destinationPath, $name);

        $userImage = new UserImage;
        $personal_info = new personal_info;
        $userImage->name = $name;
        $userImage->size = $size;
        $user = personal_info::find($id);
        $user->UserImages()->save($userImage);
    }
    return redirect('/home');
}

2 ответа

Решение

Поскольку вы не сохраняете свои активы в хранилище и не сохраняете их в общедоступном каталоге, вы можете использовать url() метод вместо. Если вам нужно придерживаться asset() вам нужно создать символическую ссылку из каталога хранилища в публичный каталог, который объясняется здесь, и использовать каталог хранилища для сохранения ваших активов.

Как я вижу, между сохраненным именем изображения и именем $currentUser->name нет никакой связи.
Можете ли вы показать свой код, который вы используете для сохранения изображения? Там вы должны сохранить изображение с текущим именем пользователя.
Ошибка здесь: $image->move($destinationPath, $name);

Другие вопросы по тегам