我能够显示现有文本,如名称和地址,但无法在编辑窗体中显示图像。 我的show.blade.php在编辑表单中显示现有图像并使用laravel进行更新
@section('content')
<p>This is user {{ $profile->name }}</p>
<p>This is address {{ $profile->address }}</p>
<img src= "/storage/images/{{ $profile->images }}" style="width:504px;height:228px />
@endsection
这工作正常。
现在edit.blade.php
<div class="container">
<form method="POST" action="/profiles/{{$profile->id}}" enctype="multipart/form-data">
{{ method_field('PATCH') }}
{{ csrf_field() }}
<div class="form-group">
name <input type="text" name="name" value="{{ $profile->name }}" />
</div>
<div class="form-group">
address <input type="textarea" name="address" value="{{ $profile->address }}" />
</div>
<div class="form-group">
@if ("/storage/images/{{ $profile->images }}")
<img src="{{ $profile->image }}">
@else
<p>No image found</p>
@endif
image <input type="file" name="image" value="{{ $profile->images }}"/>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>``
</div>
当我尝试保存表单更新的图像时,即一个不同势图像路径保存在数据库表
/tmp/phpHs0Io6
存储控制器是
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
'address' => 'nullable' ,
]);
$profile = new profile;
$profile-> user_id = auth()->id();
$profile-> name = $request->name;
$profile-> address = $request->address;
$request->image->store('public/images');
$path = $request->image->hashName();
$profile-> images = $path;
$profile->save();
return redirect('/home');
}
和更新控制器是
public function update(Request $request, profile $profile)
{
$this->validate($request, [
'name' => 'required|max:255',
'address' => 'nullable' ,
]);
$profile->update($request->all());
$profile-> name = $request->name;
$profile-> address = $request->address;
$request->image->store('public/images');
$path = $request->image->hashName();
$profile-> images = $path;
$profile->save();
return redirect('/home');
}