更新控制器方法未在Laravel中呈现JSON数据

时间:2019-12-23 20:02:17

标签: forms controller laravel-5.8

我有一个简单的表单,其中包含一些文本输入,并使用该表单上传照片。存储方法效果很好,但是我在更新方法中做错了。

这是我的存储方法,效果很好:

public function store(Request $request)
{
    dd($request);
    $post = new Post;
    $post->title = $request->title;
    $post->user_id = $request->user()->id;
    $post->who = $request->who;
    $post->when = $request->when;
    $post->where = $request->where;
    $post->body_text = $request->body;
    $post->embed = $request->embed;
    $post->status = "4";
    $post->tags = $request->tags;
    $post->slug = "asdasd";
    $post->ip = request()->ip();


    if($request->hasfile('photo'))
    {
        foreach($request->file('photo') as $image)
        {
            $name= time()."".$this->photo_san($image->getClientOriginalName());
            $image->move(public_path().'/uploads/', $name);
            $data[] = $name;
        }
        $post->photo = json_encode($data);
    }

    $post->save();

    $post->slug = $post->id."-".$this->make_slug($request->title);
    $post->save();
    Session::flash('success', 'Well done.');
    return redirect()->route('archive');

}

这是我的更新方法,可以保存除照片以外的所有内容:

  public function update(Request $request, $id)
{
    if(Auth::user()->role == 3 || Auth::user()->id == Post::find($id)->user_id){
        $post = Post::find($id);
        $post->title = $request->title;
        $post->user_id = $request->user()->id;
        $post->who = $request->who;
        $post->when = $request->when;
        $post->where = $request->where;
        $post->body_text = $request->body;
        $post->embed = $request->embed;
        $post->status = "4";
        $post->tags = $request->tags;
        $post->slug = $id."-".$this->make_slug($request->title);
        $post->ip = request()->ip();

        if($request->hasFile('photo'))
        {
            foreach($request->file('photo') as $image)
            {
                $name= time()."-edit-".$this->photo_san($image->getClientOriginalName());
                $image->move(public_path().'/uploads/', $name);
                $data[] = $name;
            }
            $post->photo = json_encode($data);
        }

        $post->save();

        Session::flash('success', 'Well done.');
        return redirect()->route('new');
    }
    else
        Session::flash('error', 'Shame on you :( ');
        return redirect()->route('new');
}

当我更新任何帖子时,所有内容都在更新,除了照片,我不知道出了什么问题。 我不知道是否有所不同,但我使用的是Laravel 5,8

0 个答案:

没有答案