【问题标题】:how to get image url in edit condition in laravel如何在laravel中的编辑条件下获取图像url
【发布时间】:2019-02-19 15:40:24
【问题描述】:

我正在使用 Laravel 开发一个 CRUD 应用程序,我正在尝试在更新条件下更新数据,但如果我不更新新图像,'The filename field is required.' 出现并且我有再次选择新图像。请帮助我如何调用旧图像。这是我的代码:

这是我在控制器中的 store 和 update 功能

public function store(Request $request)
{
    $this->validate($request, [
        'share_name'=>'required',
        'share_price'=> 'required|integer',
        'share_qty' => 'required|integer',
        'filename' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    $share = new Share;
    $share->share_name = $request->share_name;
    $share->share_price = $request->share_price;
    $share->share_qty = $request->share_qty;

    if($request->hasFile('filename')){

        $image= $request->file('filename');
        $filename = time() . '.' . $image->getClientOriginalExtension();
        $image->move(public_path('images'), $filename);
        $share->filename= $filename;
        $share->save();
    };

    $share->save();
    return redirect('/shares')
        ->with('success','Stock added successfully.');
}
public function update(Request $request, $id)
{
    $this->validate($request, [
        'share_name'=>'required',
        'share_price'=> 'required|integer',
        'share_qty' => 'required|integer',
        'filename' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    $share = Share::find($id);
    $share->share_name = $request->share_name;
    $share->share_price = $request->share_price;
    $share->share_qty = $request->share_qty;
    if($request->hasFile('filename')){

        $dir = 'images/'.$share->filename;
        if (File::exists($dir)){
             File::delete($dir);
        };
        $image= $request->file('filename');
        $filename = time() . '.' . $image->getClientOriginalExtension();
        $image->move(public_path('images'), $filename);
        $share->filename= $filename;
        $share->save();
    };

    $share->save();

  return redirect('/shares')->with('success', 'Stock has been updated');
}

这里是视图

    <div class="form-group">
      <label for="image">Share Image : </label><br/>
      <input type="file" name="filename" id="aa" onchange="pressed()" value={{ $share->share_qty }}/>

【问题讨论】:

标签: php laravel


【解决方案1】:

您不能在输入文件标签上传递值。在您的控制器更新方法上检查文件是否存在的验证。看看我的回答。

public function update(Request $request, $id){
    $this->validate($request, [
        'share_name'=>'required',
        'share_price'=> 'required|integer',
        'share_qty' => 'required|integer'
    ]);

    if($request->hasFile('filename')){
        $this->validate($request, [
            'filename' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
    }

    $share = Share::find($id);
    $share->share_name = $request->share_name;
    $share->share_price = $request->share_price;
    $share->share_qty = $request->share_qty;
    if($request->hasFile('filename')){
        $dir = 'images/'.$share->filename;
        if (File::exists($dir)){
             File::delete($dir);
        };
        $image= $request->file('filename');
        $filename = time() . '.' . $image->getClientOriginalExtension();
        $image->move(public_path('images'), $filename);
        $share->filename= $filename;
        $share->save();
    };

    $share->save();

  return redirect('/shares')->with('success', 'Stock has been updated');
}

【讨论】:

    猜你喜欢
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 2013-07-20
    • 2021-11-18
    相关资源
    最近更新 更多