将域名泛解析到指定的主机后,可以通过IIS接受所有的泛解析域名并让程序做相应的处理。接收泛解析域名的所有二级域名,只需要在绑定域名(主机头)的时候留空就行了,目录正常指向你的网站目录。
Laravel接收,解析url获取二级域名,做相应的处理
Route::get('/', 'Admin\IndexController@CheckUrlType'); public function CheckUrlType(Request $request) { //改成获取前缀 $url = $request->url(); $strat = 7;// http:// $end = strpos($url,'.'); $name = substr($url,$strat, $end - $strat); if($name == 'dl') return redirect('admin/index');//主网站的二级 //处理映射情况 --自定义的高级用户名 $map = MapName::where('from_name',$name)->first(); if(!empty($map)) { //修改为映射到的实际用户名 $name = $map->to_name; } $checkUser = AdminUser::where('name',$name)->first(); if(empty($checkUser) || !$checkUser->hasRole()){ dd('该二维码不存在'); } $id = $checkUser->id;//每个用户的二级域名就是它的用户名,通过用户名获取对应的类容 return view('admin/bagent/registerview',compact('id')); }
这样子,就可以实现像一些博客网站那样,用你的用户名做二级域名访问后,是专属于你的内容,这样的功能了
laravel有着强大的"数据库操作模型",其中有find和get等的总结方法获取数据
但是注意的是find返回的是单行对应的模型,如果数据不存在就会为null,所以用isset判断
而get是赛选where等获取的数据,是一个Collect集合,就算没有数据,也是一个空的集合,不能用isset判断,用count(*)===0判断为空
控制器中可以通过注入的Request对象获取到Session对象,再调用它的方法。
$session = $request->session(); $session->get(key);//获取某个值 $session->all();//方法获取全部session $session->has(key);//判断是否存在。 $session->put(key,value);//存储数据。 $session->pull();//获取并删除 $session->forget(key);//删除指定数据 $session->flush();//删除所有session数据。 $session->flash(key,value);//设置一次性数据 $session->reflash();//保留一次性数据到下一次 $session->keep();//保存数据下来
除了通过Rrquest对象获取session,还可以直接引入Session类,使用Session::方法使用session功能。
还可以使用辅助函数session(key)直接获取session,sesseion(['key'=>'value'])添加session。
$res = DB::table('user')->paginate(20); $res->total();//总的条数 $res->firstItem();//第一个元素 $res->lastItem();//最后一个元素 $res->lastPage();//最后一页
使用simplePaginate()分页时是没有total和lastPage的
首先,在IIS下载一个Web平台安装程序,这是一个管理应用包的利器,就像conposer等,安装网上的组件。再去平台安装程序里下载安装PHP7.0你需要的版本和url重写2.0。php的模块映射会自动完成的,当然还有环境变量。新建网站指向laravel的public目录。打开网页,一片空白,好吧-应该是权限问题。设置下载的php目录(C:\Program Files\iis express\PHP\v7.0),laravel项目的目录,添加两个用户读取执行权限IUSR和IIS_IUSRS。为需要写入的目录(laravel的storage和C:/temp)添加IUSR和IIS_IUSRS的写入权限。注意的是,添加网站的时候记得修改php的版本哟,不要一片空白你怪谁。
对了设置php配置文件php.ini的display_errors = On,显示提示错误信息,我这里下载之后默认是Off的。网站的Debug开启,有报错了之后,一切就好解决了。
当你有那么一个操作是两个where再后面一个orWhere时,你会发现其实这三者的关系是(where and where) or where。其实你的目的是想where (where or where),当时结果却不是你想的,所以要用括号括起来。
$noteList = $noteList->where('relate_id',$targetNotebook); $noteList = $noteList->where(function($query) use ($search){ $query->where('title','like',"%$search%")->orWhere('content','like',"%$search%"); });
这是只要在路由组中指定中间件,请求就会自动先经过中间件
Route::group(['middleware'=>'test'],function)
除了可以指定中间件,还可以指定控制器的命名空间namespace
domain指定子域名 当然要在hosts绑定
prefix前缀,可以用在同一模块的
Route::get('loadexcel',function(){ $res = []; Excel::load('1.xls', function($reader) use( &$res ) { $reader = $reader->getSheet(0);//得到Excel的第一个sheet $res = $reader->toArray();//转换为数组,0就是第一行(标题),二维数组 }); foreach ($res as $key=>$data){ if($key == 0){ continue;//0是标题呀 } //去取出需要的数据 $time = $data[0]; $dingdan = $data[1]; $money = $data[4]; $userid = json_decode($data[9])->userid; $gold = 0; switch ($money){ case 10: $gold = 90000; break; case 50: $gold = 460000; break; case 100: $gold = 950000; break; case 500: $gold = 4900000; } $sql = "call AddLog('游戏服务器充值成功','operator',$userid,0,'$dingdan',0,0,$money,0,0,0,$gold,0,'$time',0,1)"; DB::select($sql); } return "导入成功"; });
使用prism.js插件来做代码高亮
//引入文件 <link rel="stylesheet" href="{{asset('prism/prism.css')}}"> <script type="text/javascript" src="{{asset('prism/prism.js')}}"></script> //在文本的最后面引入
因为prism.js和ueditor生成的代码结构不一样,paism.js的高亮结构是
<pre><code class="language-css">p { color: red }</code></pre>//类名为language-语言
而ueditor的代码结构是:
<pre class="brush:css">p { color: red }</pre>//类名为brush:语言
所以,需要修改一下代码结构
//修改笔记中代码的结构 高亮 $(function(){ $("pre").each(function(){ //获取到自己的内容和类名 var content = $(this).html(); $(this).html("");//清空自己的内容 var cla = $(this).attr("class"); var newcla = ""; if(cla != null){ newcla = cla.replace("brush:","language-"); } var newNode = "<code class='"+ newcla + "'>" + content + "</code>"; $(this).append(newNode); }); });
这样就大功告成了
当报路由不存在时或404错误时,可以检查一下路由是不是真的不存在,如果路由存在,控制器方法等等都没有问题。这时候可以考虑是路由缓存的问题了,以前的路由缓存中,没有新加的路由!!!运行
php artisan route:clear