Laravel 增删改查 操作

1 视图

 <td>
                        <a href="{{url('student/show',['id'=>$student->id])}}">详情</a>
                        <a href="{{url('student/update',['id'=>$student->id])}}">修改</a>
                        <a href="{{url('student/destory',['id'=>$student->id])}}"
                           onclick="if(confirm('确认要删除吗')==false)return false"
                        >删除</a>
                    </td>

2 路由

//Laravel 自带了开箱即用的 web 和 api 两个中间件组已包含
//可以应用到 Web UI 和 API 路由的通用中间件
Route::group(['middleware'=>['web']],function (){
    Route::get('student/index',['uses'=>'StudentController@index']);
    Route::any('student/create',['uses'=>'StudentController@create']);
    Route::any('student/save',['uses'=>'StudentController@save']);
    Route::any('student/update/{id}',['uses'=>'StudentController@update']);
    Route::any('student/show/{id}',['uses'=>'StudentController@show']);
    Route::any('student/destory/{id}',['uses'=>'StudentController@destory']);
});

3 控制器

    //学生列表页
    public function index()
    {
        //(每页显示的个数)  //$students = Student::get();
        $students = Student::paginate(5);
/*        foreach ($students as $student){
            dd($student->gender());
        }*/
        $data['students'] = $students;
        return view('student.index',$data);
    }

    //action=""
    public function create(Request $request)
    {
        if ($request->isMethod('POST')){
            //web中间件会自动捕获 保存到session中,并显示到view
            //1 控制器验证
           /* $this->validate($request,[
                'Student.name'=>'required|min:2|max:20',
                'Student.age'=>'required|integer',
                'Student.gender'=>'required|integer',
            ],[
                'required'=>':attribute 为必填项',
                'min'=>':attribute 长度太短了',
                'max'=>':attribute 长度太长了',
                'integer'=>':attribute 必须为整数',
            ],[
                'Student.name'=>'姓名',
                'Student.age'=>'年龄',
                'Student.gender'=>'性别',

            ]);*/
            //2 Validator类验证
            $validdator = Validator::make($request->input(),[
                'Student.name'=>'required|min:2|max:20',
                'Student.age'=>'required|integer',
                'Student.gender'=>'required|integer',
            ],[
                'required'=>':attribute 为必填项',
                'min'=>':attribute 输入长度太短了',
                'max'=>':attribute 输入长度太长了',
                'integer'=>':attribute 必须为整数',
            ],[
                'Student.name'=>'姓名',
                'Student.age'=>'年龄',
                'Student.gender'=>'性别',

            ]);
            if ($validdator->fails()){
                return redirect()
                    ->back()
                    ->withErrors($validdator)
                    ->withInput();//数据保持
            }

            $data = $request->input('Student');
            if (Student::create($data)){
                return redirect('student/index')->with('success','添加成功');
            }
        }
        $student = new Student();
        return view('student.create',['student'=>$student]);
    }


    //action="/student/save"
    public function save(Request $request)
    {
        $data = $request->input('Student');
        $student = new Student();
        $student->name = $data['name'];

        if ($student->save()){
            return redirect('student/index');
        }
        //return redirect('student/create');
        return redirect()->back();
    }

    public  function  update(Request $request, $id)
    {
        $student = Student::find($id);

        if ($request->isMethod('POST')){
            $data = $request->input('Student');

            $validdator = Validator::make($request->input(),[
                'Student.name'=>'required|min:2|max:20',
                'Student.age'=>'required|integer',
                'Student.gender'=>'required|integer',
            ],[
                'required'=>':attribute 为必填项',
                'min'=>':attribute 输入长度太短了',
                'max'=>':attribute 输入长度太长了',
                'integer'=>':attribute 必须为整数',
            ],[
                'Student.name'=>'姓名',
                'Student.age'=>'年龄',
                'Student.gender'=>'性别',

            ]);
            if ($validdator->fails()){
                return redirect()
                    ->back()
                    ->withErrors($validdator)
                    ->withInput();//数据保持
            }


            $student->name      = $data['name'];
            $student->age       = $data['age'];
            $student->gender    = $data['gender'];
            if ($student->save()){
                return redirect('student/index')
                    ->with('success','修改成功-'.$id);
            }
        }

        $data['student'] = $student;
        return view('student.update',$data);
    }

    public function show($id)
    {
        $student = Student::find($id);
        return view('student.show',[
            'student'=>$student
        ]);

    }

    public function destory($id)
    {
        $student = Student::find($id);
        if($student->delete()){
            return redirect('student/index')
                ->with('success','删除成功-'.$id);


        }
        return redirect('student/index')
            ->with('error','删除失败-'.$id);

    }

4 完整代码

链接:https://pan.baidu.com/s/1hALthlpC_9D1FGXf4G_kyA
提取码:k47r

 

原文地址:https://www.cnblogs.com/polax/p/13358388.html