• 1-3 laravel C R U D=(数据验证)


    公共的模板布局和公共的页面一般放在common 里面,

    <body>
    @section('header')
        {{--头部--}}
    @show
    {{--中间内容区域--}}
    <div class="container">
        <div class="row">
            {{--左侧布局--}}
            <div class="col-md-3"></div>

    {{--右侧内容区域--}} <div class="col-md-9"> @yield('content') </div> </div> </div> {{--尾部--}} @section('footer') @show</body>
    
    
    @extends('common.layouts')
    @section('content')
    @include('common.message')
    <div class="panel panel-default">
    ......
    </div>
    @stop
    
    

    1-1 R 查询

    页面获取时处理 
    @foreach($students as $student)
    <tr> <th scope="row">{{ $student->id }}</th> <td>{{ $student->name }}</td> ..... </tr> @endforeach

    model:

    <?php
    
    namespace App;
    
    use IlluminateDatabaseEloquentModel;
    
    class Student extends Model
    {
        //
        protected $table = 'student';
        public $timestamps = true;
        public function getDateFormat(){
            return time();
        }
        protected function asDateTime($val)
        {
         return $val;
        }
    }

    Controller:

    class StudentController extends Controller
    {
        //学生列表
        public function index(){
    //        $students = Student::get();
            $students = Student::paginate(2);
    
            return view('student.index', [
                'students'=>$students,
            ]);
    
        }
    }

     1-2增加

     public function create(Request $request)
        {
            return view('student.create');
        }
     <form class="form-horizontal" action="{{Route('student/save')}}" method="post">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    ...........
    <button type="submit" class="btn btn-primary">提交</button> </form>
    Route::any('student/save', 'StudentController@save')->name('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');
            } else {
                return redirect()->back();
            }
        }

    另一种增加方法(控制器中)

     public function create(Request $request)
        {
            if ($request->isMethod('POST')) {
                $data = $request->input('Student');
                if (Student::create($data)) {
                    return redirect('student/index')->with('success', '添加成功');//
                } else {
                    return redirect()->back();
                }
            }
    
            return view('student.create');
        }

    1-2-1 添加提示(在控制器和野蛮操作)

      

     return redirect('student/index')->with('success', '添加成功');//

    message页面设置:

    {{--成功提示框--}}
    @if(Session::get('success'))
    ..........
            <strong>成功</strong>操作成功提示{{Session::get('success')}}
        
    @endif
    {{--失败提示框--}}
    @if(Session::has('error'))
       ................
            <strong>失败</strong>操作失败提示 {{Session::get('error')}}
        
    @endif

    1--2-2 数据验证   (控制器验证)

     if ($request->isMethod('POST')) {
                $this->validate($request, [
                   'Student.name'=> 'required|min:2|max:20',
                    'Student.age'=> 'required|integer',
                    'Student.sex'=>'required|integer',
    
                ]);
                $data = $request->input('Student');

    这里我们要使用中间键组:(kermel.php)中=》=》=》=》错误信息分享到view ---》错误信息放在了session里面,通过

    新建页面validator

    @if(count($errors))
        <div class="alert alert-danger">
            <ul>
                {{--<li>姓名不能为空</li>--}}
                {{--<li>年龄只能为整数</li>--}}
                {{--<li>请选择性别</li>--}}
                @foreach($errors->all() as $error)
                    <li>{{$error}}</li>
                @endforeach
            </ul>
        </div>
    @endif

    create页面插入此页面

    @extends('common.layouts')
    @section('content')
            @include('common.validator')
            <!-- 自定义内容区域 -->
    <div class="panel panel-default">.
        <div class="panel-heading">新增学生</div>

    定制错误提示:【

          $this->validate($request, [
                    'Student.name' => 'required|min:2|max:20',
                    'Student.age' => 'required|integer',
                    'Student.sex' => 'required|integer',
                ], [
                    'required' => ':attribute 为必填项',
                ], [
                    'Student.name' => '姓名',
                ]);
    //提示错误信息的定制

    错误信息提示到缓存中,然后传递到validator页面=》由create页面调用;

    1-2-3数据保持{{old('Student.name')}}

    1-3 修改模型变动性别

    修改模型

    const SEX_UN = 10;
        const SEX_BOY = 20;
        const SEX_GRIL = 30;
      public function sex($ind = null){
            $arr = [
              self::SEX_UN =>'未知',
                self::SEX_BOY=>'男',
                self::SEX_GRIL=>'女',
            ];
            if($ind !== null){
                return array_key_exists($ind, $arr)?$arr[$ind]:$arr[self::SEX_UN];
            }
            return $arr;
        }

    变动控制器==》student

    return view('student.create', [
                'student'=>$student
            ]);

    页面改动

     @foreach($student->sex() as $ind=>$val)
                            <label class="radio-inline">
                                <input type="radio" name="Student[sex]" value="10">未知
                            </label>
                        @endforeach
  • 相关阅读:
    板邓:解决Visual Studio 2017 安装程序清单签名验证失败
    板邓:PHP获取当前页面url地址、参数
    板邓:【WordPress文件解读】wp-config.php
    板邓:【WordPress文件解读】wp-load.php
    板邓:【WordPress文件解读】wp-blog-header.php
    读取符号库文件
    创建空间参考
    针对乱码中文进行编辑
    根据图层路径选择文件(存储)
    springboot实现数据库中数据导出Excel功能
  • 原文地址:https://www.cnblogs.com/luxia/p/8508651.html
Copyright © 2020-2023  润新知