Laravel5.7框架安装使用学习笔记详解
本文阐述了Laravel5.7框架的安装和使用。分享给大家参考,如下:
[安装Laravel]
作曲家安装:
composer create-project-prefere-dist laravel/laravel目录结构:
网站的根目录指向/public。访问错误:
原因是没有供应商文件夹。看完这篇博客,https://www.jb51.net/article/158896.htm
在根目录下运行composer update,下载很多东西
访问为空后,错误500.然后各种百度,各种设置目录权限:
chmod-r 777 storage/chmod-r 777 bootstrap/cache/chmod-r 777 vendor/仍然失败。最后,我检查了/storage/logs下的日志,出现了一个错误:
没有这样的密钥,百度一遍,我的做法是重命名根目录的隐藏文件。env.example to .env
然后根目录执行php artisan key:generate
(参考博客:https://blog.csdn.net/qq_39479575/article/details/78495703)
最终打开这一页并不容易。我明天要吃一只鸡腿庆祝.
使用php artisan - version命令查看安装的Laravel版本,它是最新的5.7版本:
[一些配置]
Laravel的所有配置文件都放在根目录/config下:
修改app.php并打开调试:
将时区设置为亚洲/上海:
控制器目录:
查看图层目录:
[路由的新知识]
与thinkphp相比,Laravel无法通过/模块名/控制器名/操作名直接访问web界面
每个web接口都必须在/routes/web.php中定义一个路由规则:
默认路由配置的意思是:访问根目录(网站首页),渲染视图层的‘欢迎’页面;
Route:get('/',function(){ return view(' welcome ');});控制器目录中创建了一个新的IndexController.php:
?phpnamespace App \ Http \ Controllers;类索引控制器扩展了控制器{public function index () {return '这是第一页';}}修改主页路线:
Route:get('/','[email protected]');再次访问主页:
项目通常区分前后,这可以通过在tp中划分模块来实现,这个原理也可以在Laravel中使用
在控制器目录下创建了两个新文件夹:索引和管理,它们分别用作前后控制器模块:
以后台管理员为例,在下面创建两个新的控制器索引和用户
手动创建太低。Laravel使用命令行来创建控制器和模型,命名空间是自动为您编写的.
PHP artisan make :控制器管理/索引控制器
IndexController.php:
?phpnamespace App \ Http \ Controllers \ Admin;使用照明\ Http \ Request使用App \ Http \ Controller \ Controller;类索引控制器扩展控制器{ public function index(){ return ' background home page ';} }UserController.php:
?phpnamespace App \ Http \ Controllers \ Admin;使用照明\ Http \ Request使用App \ Http \ Controller \ Controller;类用户控制器扩展控制器{公共函数user list返回'后台用户列表页面';} public function user add(){返回“后台用户添加”;}}设置路由时,可以通过设置路由组来共享路由属性。例如命名空间、路由前缀、中间件等。
路由组规则设置如下:
//在App\Http\Controllers\Admin命名空间下,控制器route :3360 namespace(' Admin ')-group(function () {//后台主页route :3360 group([' prefix '=' Admin/index '],function(){//主页显示route:3360get ('index ','[email protected]'));});//后台用户route :3360 group([' prefix '=' admin/user '],function(){//用户列表route:3360get ('userlist ','[email protected]');//用户添加route:get ('useradd ',' email protected ');});});这样就可以实现像tp一样的/模块名/控制器名/操作名的访问方式:
(当然,路由前缀前缀和路由名称可以随意定义,不必遵循tp的编写方法,只是为了清晰起见)
[中间件]
Laravel的中间件在目录/app/Http/Middleware下,用于过滤Http请求,可以做一些字段验证、认证、CSRF保护等.
Laravel附带了一些中间件:
示例:设置CheckLog中间件,判断用户是否登录。如果用户已经登录,您可以查看用户列表页面,否则,跳转到主页
执行命令生成中间件:(这里,和控制器一样,前后目录是分开打开的)
PHP artisan make : middleware Admin/CheckLog
CheckLog.php中间件内容:
?phpnamespace App \ Http \中间件\ Admin使用照明\ Http \ Request使用闭包;类检查日志{ /** *处理传入的请求。* * @ param \ Illuminate \ Http \ Request $request * @ param \ Closure $ next * @返回混合*/公共函数句柄($ Request,Closure $ next){ $ mid=$ Request-cookie(' mid ');if(empty($ mid)){ return redirect(' admin/index/index ');}//在处理请求之前,执行返回$next($request)的操作;}}写好中间件之后,需要在/app /app/Http/Kernel.php中注册中间件
目的是将路由中间件分配给路由,并添加:
admin.checklog '=\ App \ Http \中间件\Admin\CheckLog:class,
修改/routes/web.php的路由配置,并将中间件属性添加到后台用户路由组:
//后台用户route:3360group (['前缀'=' admin/user ','中间件'=' admin.checklog'],function(){//用户列表route:3360get ('userlist ','[email protected]');//用户添加route:get ('useradd ',' email protected ');});这时,当你访问用户列表页面时,你会先去中间件判断登录状态,不登录就跳转到首页:
(Kernel.php中的其他中间件属性:全局中间件$中间件,中间件组$middlewareGroups,中间件执行顺序$middlewarePriority)
如果没有为路由设置中间件属性,也可以在控制器的构造方法中设置中间件,可以指定或排除特定的操作。例子如下:
?phpnamespace App \ Http \ Controllers \ Admin;使用照明\ Http \ Request使用App \ Http \ Controller \ Controller;类用户控制器扩展控制器{ public function _ _ construct(){//所有操作生效$ this-中间件(' admin。check log’);//只有xxx操作生效//$ this-中间件(' admin。check log ')-仅(' user list ');//划分xxx的操作生效//$ this-中间件(' admin。check log ')-除了(' user add ');} public function user list(){返回“后台用户列表页面”;} public function user add(){返回“后台用户添加”;} }[请求请求]
要获取请求,首先需要引入照明\Http\Request类
基本用途:
?phpnamespace App \ Http \ Controllers \ Admin;使用照明\ Http \请求使用app \ Http \ Controller \ Controller;类索引控制器扩展控制器{公共函数索引(Request $request){ $uri='请求路径:'.$ request-path();$url='请求网址:$ request-URL();$method='请求方法:'.$ request-method();$name='获取请求参数:'.$ request-input(' name ');$mid='获取cookie: ' .$ request-cookie(' mid ');$key='获取会话:$ request-session()-get(' key ');$file='获取上传文件:'.$ request-file(' photo ');dump($ uri);转储($ URL);转储($方法);dump($ name);dump($ mid);dump($ file);//验证请求路径//if($ request-is(' admin/*){//}//验证请求方法//if($ request-is)方法(' post '){//} } } } }(9525 . 163.com)
【分配数据渲染视图】
以后台首页视图/管理员/索引/索引为例:
控制器使用视图()函数渲染视图,同时分配数据:
?phpnamespace App \ Http \ Controllers \ Admin;使用app \ Http \ Controller \ Controller;类索引控制器扩展了控制器{公共函数索引(){//分配一个字段//$ name=' lws ';//返回视图(' admin。索引。索引')-带(' name ',$ name);//分配数组$data=['name'='lws ',' sex '=' nan '];返回视图(' admin.index.index ',$ data);//也可以使用服务器端编程语言(专业超文本预处理器的缩写)的紧密的函数传值//$ name=' lws ';//$ sex=' nan ';//返回视图(' admin.index.index ',compact('name ',' sex ');} }视图层使用双大括号{{ }}获得数据:
姓名:{{$name}}br/性别:{ { $ sex } }
{{ $test }}会自动调用服务器端编程语言(专业超文本预处理器的缩写)的htmlspecialchars()函数防止跨站脚本攻击,如果不需要转义可使用{!$测试!},例如富文本格式。
更多关于Laravel相关内容感兴趣的读者可查看本站专题: 《Laravel框架入门与进阶教程》 、 《php优秀开发框架总结》 、 《php面向对象程序设计入门教程》 、 《php+mysql数据库操作入门教程》 及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。
版权声明:Laravel5.7框架安装使用学习笔记详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。