Php 如何使用laravel中的控制器更新图像?

Php 如何使用laravel中的控制器更新图像?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我想更新用户图像,但它没有得到更新。我使用了以下控制器来更新图像。。你能告诉我控制器的功能有什么错误吗 视图部分: <div class="form-group"> <label>Image Upload</label> <input type="file" name="image" id="image"><img src="{{ asset('public/images/' . $cours

我想更新用户图像,但它没有得到更新。我使用了以下控制器来更新图像。。你能告诉我控制器的功能有什么错误吗

视图部分:

<div class="form-group">
            <label>Image Upload</label>
            <input type="file" name="image"  id="image"><img src="{{ asset('public/images/' . $course->image) }}" width="200px"/></br>
 </div> 

您是否检查了“图像”目录的文件权限?上传文件需要有写权限

问题是

$data->image = $name;
您设置了值,但不将其保存在任何位置。您必须添加一个保存行

$data->save();

请注意,调用
update()
只保存作为参数传入的内容,而不保存通过mutators设置的内容。

请注意,问题的错误/解决方法是首先存储更新值,然后保存新图像。所以我对控制器做了一些更改并解决了它

以下是控制器代码:

public function update(Request $request, $id)
{
    $data=Course::findOrFail($id);  
     $data->update($request->all());

    if ($request->hasFile('image'))
    {
            $file = $request->file('image');
            $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
            $name = $timestamp. '-' .$file->getClientOriginalName();
            $data->image = $name;
            $file->move(public_path().'/images/', $name);   
            $data->save();                  
        }   
    return redirect('course');
}

我已经用你的解决方案更新了这个问题,但仍然得到相同的错误。
public/images
目录的权限是什么?我如何检查权限?你到底得到了什么错误?我实际上无法更新。。我得到了。。。到底是什么错误?就像错误说什么lol…伙计..它没有显示任何错误..只是数据没有更新lol!我懂了。那很有帮助。你得做一些自我调试然后。。。使用
dd($variable),确保文件正在到达服务器
必要时,可以在
update()
函数中的某个地方添加
try{}catch(){}
,等等。否则很难说出哪里出了问题。
public function update(Request $request, $id)
{
    $data=Course::findOrFail($id);  
     $data->update($request->all());

    if ($request->hasFile('image'))
    {
            $file = $request->file('image');
            $timestamp = str_replace([' ', ':'], '-', Carbon::now()->toDateTimeString()); 
            $name = $timestamp. '-' .$file->getClientOriginalName();
            $data->image = $name;
            $file->move(public_path().'/images/', $name);   
            $data->save();                  
        }   
    return redirect('course');
}