Php Laravel:创建表单显示照片和编辑表单不显示照片
创建表单中的dd($input)显示以下内容:Php Laravel:创建表单显示照片和编辑表单不显示照片,php,html,laravel,laravel-5.3,laravel-5.4,Php,Html,Laravel,Laravel 5.3,Laravel 5.4,创建表单中的dd($input)显示以下内容: array:5 [▼ "_token" => "Q6xauvlFx0k61JDqFvo4FsJtr5Y9EbVX8V3Wwk8V" "blockquote" => "test block quote content" "name" => "test name" "description" => "test description" "photo" => UploadedFile {#267 ▶} ]
array:5 [▼
"_token" => "Q6xauvlFx0k61JDqFvo4FsJtr5Y9EbVX8V3Wwk8V"
"blockquote" => "test block quote content"
"name" => "test name"
"description" => "test description"
"photo" => UploadedFile {#267 ▶}
]
但是编辑表单的dd($input)显示以下内容
array:9 [▼
"_method" => "PATCH"
"_token" => "oDzfMvXiWMUzAr6zftnTZb9IVQCwWa2Tt2ZPBp6x"
"photo" => "43-356x220.jpg"
"blockquote" => "asf"
"name" => "Af"
"description" => "af"
"files" => "1"
"enctype" => "multipart/form-data"
"data-toggle" => "validator"
]
因此,这会导致图像上载失败和
$image = Input::file('photo');
上面的行返回null。我想要照片,我该怎么办
我认为这项工作的方法'后'在创建和显示不同的方法'补丁'在编辑。如何在编辑中实现
编辑:添加了我的代码
create.blade.php代码
{!! Form::open([
'route' => 'MessageFromAlumniPresident.store', 'id' => 'formidda', 'files' => true, 'enctype' => 'multipart/form-data', 'data-toggle'=>'validator'
]) !!}
@include('Admin.MessageFromAlumniPresident.create_edit_common')
<button class="btn btn-success" type="submit">Submit</button>
{!! Form::close() !!}
此创建工作正常…
edit.blade.php
{!! Form::model($item, [
'route' => ['MessageFromAlumniPresident.update', $item->id, 'files' => true, 'enctype' => 'multipart/form-data', 'data-toggle'=>'validator']
]) !!}
@include('Admin.MessageFromAlumniPresident.create_edit_common')
<button class="btn btn-success" type="submit">Submit</button>
{!! Form::close() !!}
您的表单在文件输入方面有什么不同?第二个似乎只是看到一个字符串,就像您在控制器return的“photo”=>UploadedFile{#267中编写了
input type=“text”
参考如何在laravel@Naincy create方法中使用文件一样▶}' 因此,我们可以处理,但控制器中的上载方法只提供文件名。@arun显示您的代码您做了什么?@arun我理解,所以只有我共享了链接。……为了保存,您必须要检索路径和扩展名,您可以从$path=$request->photo->path();$extension=$request->photo->extension()获取路径和扩展名;不确定你是否想要这个
{!! Form::model($item, [
'route' => ['MessageFromAlumniPresident.update', $item->id, 'files' => true, 'enctype' => 'multipart/form-data', 'data-toggle'=>'validator']
]) !!}
@include('Admin.MessageFromAlumniPresident.create_edit_common')
<button class="btn btn-success" type="submit">Submit</button>
{!! Form::close() !!}
public function update(Request $request, $id)
{
$items = MessageFromAlumniPresident::findOrFail($id);
$this->validate($request, [
'blockquote' => 'required',
'name' => 'required',
'description' => 'required',
'photo' => 'required'
]);
$input = $request->all();
$image = Input::file('photo');
$items->fill($input)->save();
if($image === NULL){
Session::flash('flash_message', 'Product Master successfully added!');
//TODO: redirect to Party list page
return redirect()->route('MessageFromAlumniPresident.index');
}else{
$path = public_path('/images/MessageFromAlumniPresident/alumni_president.jpg');
\File::delete($path);
$filename = 'alumni_president'. '.' . $image->getClientOriginalExtension();
$path = public_path('/images/MessageFromAlumniPresident/'.$filename);
Image::make($image->getRealPath())->save($path);
}