美文网首页
注意的几点

注意的几点

作者: 空留灯半盏 | 来源:发表于2018-08-05 10:56 被阅读0次

    需要注意的几点..

    RBAC的实现:

    就是用户表,权限表,角色表的增删改查. 用户登录时查询当前控制器方法是否在用户对应的角色权限内,如果在不做任何操作,如果不在就打回并提示;
    
    time() 输出当前时间的时间戳
    date('Y-m-d H:i:s') 输出当前日期时间
    date('Y-m-d H:i:s',[ time ]) : 将time时间戳 转为日期时间
    strtotime() 将日期转为时间戳

    字符串的函数

    $time = time();
    echo $time;
    echo "<hr>";
    // echo strtotime($time);
    echo date(
        'Y-m-d H:i:s',
        1531058347
    );
    echo "<hr>";
    echo date(  #当前时间
        'Y-m-d H:i:s'   
    );
    echo "<hr>";
    $arr = [
        'a',1,'b',2
    ];
    echo  implode($arr,'/');  #将数组转为字符串
    $str = 'a/b/1/2';
    echo "<hr>";
    print_r(explode('/',$str));  将字符串转为数组
    

    JSON_decode

    json_decode — 对 JSON 格式的字符串进行编码

    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
    var_dump(json_decode($json)); 
    

    json_encode

    json_encode — 对变量进行 JSON 编码

    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
    echo json_encode($arr);
    
    rpm包命令
    安装: rpm -ivh 软件名  说明:i - 安装,v - 显示详细信息,h - 显示进度
    卸载: rpm -e 软件名 --nodeps  说明:--nodeps 不检测依赖性
    
    laravel源代码包命令 (tar)
    【 .tar.gz】解压命令:tar  -zxvf  待解压的包名
    【 .tar.gz】压缩命令:tar  -zcvf  包名  文件路径
    【.tar.bz2】解压命令:tar  -jxvf  待解压的包名
    【.tar.bz2】压缩命令:tar  -jcvf  包名  文件路径
    -z 代表【.tar.gz】   -j代表【.tar.bz2】
    -x 代表【解压】        -c代表【压缩】
    -v 显示操作详细信息
    -f 后面必须跟包名
    
    yum 命令

    安装 : yum -y install 软件名

    卸载 : yum -y remove 软件名

    laravel

    js获取当前url地址参数

    window.location.href
    

    创建控制器

    php artisan make:controller 平台名\控制器名Controller
    

    创建模型

    php artisan make:model Http\Models\Student  平台名\模型名
    

    创建中间件

    语法:php artisan make:middleware  中间件名称
    位置:app\Http\Middleware
    

    需要激活 详情参数第四天laravel

    创建验证器

    语法:php artisan make:request 验证类名称   (注:Check模型名  大驼峰)
    位置:app\Http\Requests
    

    创建资源控制器

    php artisan make:controller Admin\OrderController --resource
    

    创建资源路由

    Route::resource('/order','Admin/OrderController')
    

    创建数据迁移文件

    php artisan make:migration create_admin_table --create=admin
    #执行
    php artisan migrate
    

    创建测试数据填充文件

    php artisan make:seeder AdminTableSeeder
    #执行填充文件
    php artisan db::seed --class=AdminTableSeeder
    

    配置路由

    Route::HTTP请求方式(url,闭包或控制器方法)
    &Route::match(['get', 'post'], 请求的URL, 闭包函数或控制器方法)
    &Route::match(['get', 'post'], 请求的URL, 闭包函数或控制器方法)
    

    调用视图

    return view(视图名称,compact(变量名1,变量名2......变量n));
    

    视图模板

    blade相当于smarty 都是模板引擎
    blade视图文件使用.blade.php作为文件扩展名
    

    获取请求

    语法:$request->isMethod('xxx') 判断请求类型
    导入命名空间【use Illuminate\Http\Request】
    

    获取参数

    $request->all()                                    获取所有数据
    $request->input(参数名,默认值)               获取单个数据
    $request->only([参数名1,...,参数名n])    获取指定数据
    $request->except([参数名1,...,参数名n])   获取指定数据外的所有数据
    

    url参数

    <form action = "{{ url('msg/add') }}" method="post"></form>
    <a href="{{  url("student/del?id=$student->id ") }}" onclick="return confirm('确定要删除吗?')">删除</a>
    

    静态参数

    {{ asset('/') }}  指向根目录 public/
    

    ------------二---------------

    csrf攻击  : 就是web中的一种恶意攻击方式,中文名跨站请求伪造(跨站点攻击)
    打开app\http\kernel.php核心文件开启cstf攻击(默认开启)
    后期有post提交的表单都必须增加_token键
    <input type="hidden" name="_token" value="{{csrf_token()}}">
    

    闪存数据

     闪存:指数据存储在session中但只能读取一次
     说明:闪存的有效期是到下一个请求为止(也就是页面刷新完毕后则销毁)
    
    <script type="text/javascript">
        @if (Session::has('tips'))
            alert("{{Session::get('tips')}}");
        @endif
    </script>
    
    if($rs){
           return redirect(url('msg'))->with(['tips'=>'成功']);
     }else{
           return  redirect(url('msg'))->with(['tips'=>'成功']);
     }
    

    内置分页功能使用

     $day2s = Day2::paginate(2); #get索引 #first 一条
     分页CSS样式代码:https://www.cnblogs.com/lamp01/p/6869762.html
    

    自定义错误页面

    操作数据库CURD请看第二天

    ------------------------三-----------------------

    数据迁移

    手册http://laravelacademy.org/post/6964.html

    创建表: php artisan make: migration create_a_table --create=a #对文件进行操作 具体内容看第三天
    
    执行: php artisan migrate
    
    修改表: php artisan make:migration update_a_table --table=a
    
    执行 会报错 要安装扩展  composer require doctrine/dbal
    
    执行 php artisan migrate
    

    填充数据

    创建填充器:php artisan make:seeder  填充器名称(Day3T2TableSeeder) (注:表名TableSeeder  大驼峰)
    
    #一个小案例的填充器
    public function up()
    {
        Schema::create('student', function (Blueprint $table) {
                $table->increments('id')->comment('编号');
                $table->string('uname', 45)->comment('用户名');
                $table->string('pwd', 255)->comment('密码');
                $table->unsignedTinyInteger('age')->default(0)->comment('年龄');
                $table->unsignedTinyInteger('sex')->default(1)->comment('性别:1-男,2-女');
                $table->integer('created_at')->default(0)->comment('创建于');
                $table->integer('updated_at')->default(0)->comment('更新于');
            });
    }
    
    运行填充器:php artisan db:seed --class=填充器名称(Day3T2TableSeeder)
    

    faker参考第三天和第一天

    加密方式

    Laravel存储用户密码非MD5算法,而是使用php5.5新函数password_hash和password_verify
    加密语法:Hash::make('admin888');  或者  bcrypt('admin888');
    校验语法:Hash::check('admin888', 密文);
    
    ---------------------------四----------------------------------

    视图页面布局

    @yield('标识')                父(公共区域)定义内容片段,子填充
    @extends('标识')          子继承父(公共区域)
    @section('标识', '默认值')   子填充父(公共区域)文字
    @section('标识')              子填充父(公共区域)HTML代码
    存放子页面内容
    @endsection
    @include('视图标识', ['key' => 'value变量值']) 调取公共页面(一般多个子页面提取)
    具体过程参数laravel第四天
    

    会话技术

    配置在第四天

    设置:            Session::put(键,值);
    获取指定:          Session::get(键 [,默认值])
    获取所有:          Session::all()
    判断:            Session::has(key)
    
    删除指定:          Session::forget(key) 
    删除所有:      Session::flush() 
    压入session数组:Session::push(key, value)
    获取后删除:     Session::pull(key) 
    闪存:            Session::flash(key, value)  
    辅助函数
    设置:session([键1=>值1,...,键n=>值n])
    获取:session(键)
    

    Cookie会话

    设置:Cookie::make(键,值)

    获取:Cookie::get(键)

    $data = Cookie::make('username','itcast')
    return redirect(url('/day4/t2))->withCookie($data);
    echo Cookoe::get('username')
    

    中间件

    中间件:就是HTTP请求交给控制器方法前的过滤层

    将HTTP请求交给控制器方法前先交给另一个方法处理

    数据验证

    在控制器直接使用validate

    $this->validate($request,验证规则 [,自定义提示信息])
    

    单独创建验证类

    语法:php artisan make:request 验证类名称   (注:Check模型名  大驼峰)
    位置:app\Http\Requests目录
    

    validator门面

    $validator = Validator::make(数组,验证规则 [,自定义提示信息])
    $validator->passes()            判断是否成功:true-成功没有问题,false-失败有问题
    $validator->fails()             判断是否失败:true-失败有问题,false-成功没问题
    $validator->messages()           获取错误信息
    

    在视图中输出

    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif
    

    验证规则具体请参考第四天

    连表查询

    http://laravelacademy.org/post/2774.html

    需先下着调试工具

    composer require barryvdh/laravel-debugbar
    在config\app 中激活
    'providers' => [
        Barryvdh\Debugbar\ServiceProvider::class,
    ]
    

    连表查询语法:

    DB::table(表1)/ 模型名
    leftJoin(表2,‘表1.公共字段’,‘=’,‘表2.公共字段’)
    ->get();
    

    关联模型

    一对一
    步骤1:定义模型
    public function  推荐表名 () 
    {
    return $this->hasOne(关联模型命名空间,关联模型公共字段,本模型公共字段);
    }
    
    步骤2:模型名::with(推荐表名)->get()
    步骤3:
    foreach($模型名s as $模型名) {
         获取当前模型对应的表数据 $模型名->字段名
         获取当前模型关联表数据   $模型名->with处名称->关联模型字段名;
    }
    一对多
    步骤1:定义模型
    public function  推荐表名s () 
    {
    return $this->hasMany(关联模型命名空间,关联模型公共字段,本模型公共字段);
    }
    
    步骤2:模型名::with(推荐表名s)->get()
    步骤3:
    foreach($模型名s as $模型名) {
         获取当前模型对应的表数据 $模型名->字段名
         获取当前模型关联表数据  (脚下留心:多条数据)
    foreach($模型名->with处名称 as $关联表名) {
        $关联表名->关联表字段
    }
    }
    

    路由2

    RESTful

    就是目前最流行的一种互联网软件架构(思想)

    创建资源控制器路由:Route::resource(URL信息,控制器);

    Route::resource('/order','Admin/OrderController')
    

    创建资源控制器:php artisan make:controller 平台名\控制器名Controller --resource

    php artisan make:controller Admin\OrderController --resource
    

    缓存/配置文件/文件存储-上传

    缓存

    http://laravelacademy.org/post/6858.html

    存储路径:storage\framework\cache

    设置:Cache::put(键,值,缓存时间/分钟)

    获取:Cache::get(键

    配置文件

    http://laravelacademy.org/post/6677.html

    config(config目录下的配置文件名称.键)

    #需求1:获取app配置文件中时区
    echo config('app.timezone') . '<br />';
    #需求2:获取缓存存放目录
    echo config('cache.stores.file.path');
    

    文件上传

    $request->hasFile(上传框name属性值) 
    $request->file(上传框name属性值)->isValid()
    $filename = $request->file(上传框name属性值)->store(子路径,存储驱动器名称);
    ----------------------------------------------
    存储驱动器的名称:对应config/filesystems.php文件的声明
    子路径:指会在config/filesystems.php文件声明的上传文件夹下再创建一个文件
    修改config\filesystems.php 配置文件
    在disks数组中新增
    'uploads'=>[
        'driver'=>'local', #存储方式: local本地
        'root'=>public_path('uploads')  #存放位置: public/uploads
    ],
    具体过程参考第四天
    

    用户认证Auth 相关语法

    1.验证信息并登陆:Auth::guard(参数)->attempt(用户名和密码数组,是否保存用户状态:true-是,false-否)
    2.检查状态:Auth::guard(参数)->check()
    3.获得登陆用户:Auth::guard(参数)->user()->数据库字段
    4.退出登录:Auth::guard(参数)->logout()
    

    之后模型使用Auth需修改配置文件 具体参考laravel实战第一天

    相关文章

      网友评论

          本文标题:注意的几点

          本文链接:https://www.haomeiwen.com/subject/nrfbvftx.html