Проблемы с извлечением изображения из общей папки с отношениями один-к-одному
У меня возникли проблемы с получением изображения из общей папки, где в базе данных, у меня есть 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);