#php #laravel #laravel-8
#php #ларавель #laravel-8
Вопрос:
Я хотел удалить image
строку из моей users
таблицы. Вот моя форма:
<form method="POST" action="{{ route('profile.update' , ['profile' => Auth::user()->id]) }}" enctype="multipart/form-data">
@csrf
@method('PATCH')
<input type="file" class="form-control-file" id="exampleFormControlFile1" name="image">
<button type="submit" class="btn btn-primary">
{{ __('Submit') }}
</button>
</form>
Тогда у меня есть этот update
метод в моем контроллере:
public function update(Request $request, $profile)
{
$validate_data = Validator::make($request->all(),[
'image' => 'image|nullable|max:1999',
'location' => 'nullable'
]);
if($request->hasFile('image')){
// get filename with extension
$filenameWithExt = $request->file('image')->getClientOriginalName();
// get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// get just ext
$extension = $request->file('image')->getClientOriginalExtension();
// filename to store
$fileNameToStore = $filename.'_'.time().'.'.$extension;
// upload
$path = $request->file('image')->storeAs('public/avatars', $fileNameToStore);
}else{
$fileNameToStore = 'noimage.jpg';
}
$user = User::findOrFail($profile);
$user->update([
'location' => request('location'),
'image' => $fileNameToStore
]);
$user->save();
return back();
}
Я также выполнил команду php artisan storage:link
, чтобы создать storage
папку в public
каталоге.
Поэтому всякий раз, когда я пытаюсь загрузить изображение, изображение успешно сохраняется в public/storage
базе данных и в базе данных, и чтобы получить его в blade, я сделал это:
<img
src="/storage/avatars/{{ Auth::user()->img }}"
alt="{{ Auth::user()->img }}"
/>
Но проблема в том, что он как-то не отображается!!
Итак, что здесь не так, как я могу правильно отобразить свое изображение из базы данных?
Я был бы очень признателен за любую идею или предложение от вас, ребята…
Заранее спасибо.
Комментарии:
1. Это так же легко, как
img
и не то же самое, чтоimage
2. Проверьте свои реальные пути изображения. Проверьте значение $path после сохранения. Я думаю, что ваши пути разные.
Ответ №1:
Auth::user()->img
вероятно, должно быть Auth::user()->image