后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

一、总结

一句话总结:

在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器
    public function __construct()
    {
        //验证用户是否登录
        $this->middleware('admin.auth');
    }

1、jquery自动传递csrf的token字段?

在页头创建csrf-token的meta标签,在页尾用ajaxSetup设置token的值
X-CSRF-TOKEN
除了检查 POST 参数中的 CSRF 令牌外, VerifyCsrfToken 中间件还会检查 X-CSRF-TOKEN 请求头。你应该将令牌保存在 HTML meta 标签中,如下:

<meta name="csrf-token" content="{{ csrf_token() }}">
然后,一旦你创建了 meta 标签,就可以指示像 jQuery 这样的库自动将令牌添加到所有请求的头信息中。还可以为基于 AJAX 的应用提供简单、方便的 CSRF 保护。如下:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
{tip} 默认情况下,resources/assets/js/bootstrap.js 文件会用 Axios HTTP 函数库注册 csrf-token meta 标签中的值。如果不使用这个函数库,则需要为你的应用手动配置此行为。

2、控制器中返回json数据?

return response()->json(['message'=>'刪除成功','valid'=>1]);

3、composer dumpautoload命令作用?

删除了类,有记录,需要更新:比如php artisan创建的时候名字写错了,要删了重新来

4、撤销数据迁移?

php artisan migrate:rollback:也就是执行数据迁移里面的down方法,删除表

php artisan migrate

5、视频网站的视频存到哪里?

阿里云oss服务,按需付费,方便划算

6、数据库的表的字段还是可以照我那样加前缀,可以省很多事和不必要的错误?

因为重复字段比如id在连表的时候不注意很容易有错误,而且不好排查

7、解决ajax跨域访问?

默认情况下前台发送Ajax是允许跨域请求的。我们可以在后台进行相关设置然后允许前台跨域请求。

允许单个域名访问
header('Access-Control-Allow-Origin:http://www.houdunwang.com');


允许多个域名 $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
$allow_origin = array(
 'http://www.houdunren.com',
    'http://www.houdunwang.com'
);
if(in_array($origin, $allow_origin)){
    header('Access-Control-Allow-Origin:'.$origin);
}

允许所有域名请求 header('Access-Control-Allow-Origin:*');

8、后盾人项目代码怎么找?

直接github上面搜索后盾人即可:https://github.com/houdunwang

9、后盾js配置?

可以去github上面找项目,也可以直接官网找配置,不过这个js用的人太少,文档也非常有问题


github位置:https://github.com/houdunwang/hdjs
配置位置:http://houdunren.gitee.io/note/hdjs/1%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.html#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6

<script>
    //HDJS组件需要的配置
    window.hdjs={
        //组件目录必须绝对路径
        base : '/node_modules/hdjs',
        //上传文件后台地址
        uploader : '/uploader.php?',
        //获取文件列表的后台地址
        filesLists : '/filesLists.php?',
        //require.js配置项(可为空)
        requireJs:{paths:{},shim:{}},
    };
</script>
<script src="/node_modules/hdjs/require.js"></script>
<script src="/node_modules/hdjs/config.js"></script>

10、后盾js一直引一直失败的原因是什么?

我把后盾js放到了页面bottom里面,而使用在页面中间,使用又没有放到页面加载完全函数里面

二、内容在总结中

1、lavarel中子控制器继承父控制器以判断是否登录

app/Http/Controllers/Admin/CommonController.php

<?php

namespace AppHttpControllersAdmin;

use IlluminateHttpRequest;
use AppHttpControllersController;

abstract class CommonController extends Controller
{
    public function __construct()
    {
        //验证用户是否登录
        $this->middleware('admin.auth');
    }

    /**
     * 成功信息
     * @param $message
     * @return IlluminateHttpJsonResponse
     */
    protected function success($message){
        //这样返回信息的时候只用返回$this->success('成功')
        return response()->json(['message'=>$message,'valid'=>1]);
    }

    /**
     * 错误信息
     * @param $message
     * @return IlluminateHttpJsonResponse
     */
    protected function error($message){
        return response()->json(['message'=>$message,'valid'=>0]);
    }


}
在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器

比如

class TagController extends CommonController
 

2、

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/11526095.html