[Day 43] 心情随笔后台及前台(五) - 编辑心情随笔资料画面及动作

接下来要处理的是编辑的画面,
我们看一下昨天这个画面
http://img2.58codes.com/2024/20105694Zc7Lz50GtU.png
右边有一个修改的按钮,
点下去之后就可以针对这一则心情随笔进行修改,
我们要在 app/Http/Controllers/AdminController.php 新增一个editMindPage方法,
修改的部分跟新增很像,
因为我们用的是同一个画面
可以把addMinPage複製过来再改一下就可以,

我们这里会用到一个参数mind_id,
这个参数写在 routes/web.php

Route::group(['prefix' => '{mind_id}'], function(){

然后我们开始写editMindPage方法,
我们要取得我们要的心情随笔Mind资料,
首先我们要验证有这笔资料(id)存在,
然后我们再验证这笔资料是属于这个使用者的(user_id),
总不能编辑别的使用者的资料吧,
如果找不到资料就转回列表页,
我们写editMindPage如下:

//编辑心情随笔资料function editMindPage($mind_id){    Log::notice('新增心情随笔资料');    //先取得自己的资料    $User = $this->GetUserData();    //取得心情随笔列表    $Mind = Mind::where('id', $mind_id)->where('user_id', $User->id)->first();    if(!$Mind)    {        //如果找不到资料就回列表页        return redirect('/admin/mind');    }    $name = 'mind';    $action = '修改';    $binding = [        'title' => ShareData::TITLE,        'page' => $this->page,        'name' => $name,        'User' => $User,        'Mind' => $Mind,        'action' => $action,        'result' => '',    ];    return view('admin.mind', $binding);}

画面的部分之前已经写好,
所以问题不大,
再来就是要处理POST的部分,
也就是修改完资料之后的处理.
(即使没修改我们也当成已修改来处理)

我们在 editMindProcess 方法加上编辑的处理如下:

//编辑心情随笔的动作function editMindProcess(){    Log::notice('处理心情随笔资料');    $User = $this->GetUserData();    if(!$User)    {        Log::notice('找不到使用者');        //如果找不到使用者,就回到首页        return redirect('/');    }    $name = 'mind';    //接收输入资料    $input = request()->all();    //验证规则    $rules = [        //内容        'content' => [            'required',            'max:400'        ],    ];    //验证资料    $validator = Validator::make($input, $rules);    if($input['id'] == '')    {        //新增        $action = '新增';        $Mind = new Mind;        $Mind->content = $input['content'];    }    else    {        //修改        $action = '修改';        //取得心情随笔列表        $Mind = Mind::where('id', $input['id'])->where('user_id', $User->id)->first();        if(!$Mind)        {            //如果找不到资料就回列表页            return redirect('/admin/mind');        }        $Mind->content = $input['content'];    }    if($validator->fails())    {        $binding = [            'title' => ShareData::TITLE,            'page' => $this->page,            'name' => $name,            'User' => $User,            'Mind' => $Mind,            'action' => $action,            'result' => '',        ];        return view('admin.mind', $binding)            ->withErrors($validator);    }    if($input['id'] == '')    {        //新增        $input["user_id"] = $User->id;        $input["enabled"] = 1;        Mind::create($input);    }    else    {        //修改        $Mind->save();    }    //成功就转回列表页    return redirect('/admin/mind/?result=success');    }

这样子就完成修改的动作,
同样修改完右上角会出现提示(这动作之前就写好了)
http://img2.58codes.com/2024/20105694pTdEKLlOHc.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章