【问题标题】:Image doesn't store in Laravel 6图像不存储在 Laravel 6 中
【发布时间】:2020-01-02 04:58:26
【问题描述】:

我尝试使用 Vue.js 在 Laravel 中实现 image upload?但是,我不知道为什么图像不保存到数据库中。我不确定,真正的问题来自我的Vue.jsMy Controller。我还是不知道怎么弄。

客户控制器

public function store(Request $request)
{
    $data = $request->validate([
        'name' => 'required',
        'email' => 'required',
        'phone' => 'required',
        'company_name' => 'required',
    ]);

    $customer = Customer::create($data);

    if ($request->hasFile('image')) {
        $image = $request->get('image');
        $imageName = time().'.'.$request->image->getClientOriginalExtension();
        $request->image->move(public_path('images'), $imageName);
    }
    // dd($customer);

    return response()->json(['sucessfully created image']);
}

【问题讨论】:

  • 为什么不调试代码找出问题来源?
  • @Shrembo 我的控制器是对还是错?
  • @CamBoKiDz 在 vuejs 中你应该使用 base64 来上传图片
  • 您打算将图像文件保存在数据库中还是只保存图像文件名?

标签: laravel vue.js laravel-6


【解决方案1】:

我想你忘记保存图片了

试试这个

public function store(Request $request)
{
    $data = $request->validate([
        'name' => 'required',
        'email' => 'required',
        'phone' => 'required',
        'company_name' => 'required',
    ]);

    $customer = Customer::create($data);

    if ($request->hasFile('image')) {
        $image = $request->get('image');
        $imageName = time().'.'.$request->image->getClientOriginalExtension();
        $request->image->move(public_path('images'), $imageName);
        // Get the property name of table I suppose its imgData
        $customer->imgData = $imageName;
        $customer->save();
    }

    return response()->json(['sucessfully created image']);
}

或者如果你有多对多的关系 只需用附加方法替换该行 让我知道这是否对您有帮助

【讨论】:

  • 我得到了这个`调用字符串上的成员函数getClientOriginalExtension()`
  • @Bipin 我也是!!
猜你喜欢
  • 2021-05-24
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 2018-06-18
相关资源
最近更新 更多