宝哥软件园

Laravel5.7框架安装使用学习笔记详解

编辑:宝哥软件园 来源:互联网 时间:2021-08-26

本文阐述了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(){返回“后台用户添加”;}}设置路由时,可以通过设置路由组来共享路由属性。例如命名空间、路由前缀、中间件等。

路由组规则设置如下:

//在AppHttpControllersAdmin命名空间下,控制器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 中间件AdminCheckLog: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(){返回“后台用户添加”;} }[请求请求]

要获取请求,首先需要引入照明HttpRequest类

基本用途:

?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框架的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。

更多资讯
游戏推荐
更多+