后盾网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