首页 > 作文

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

更新时间:2023-04-07 11:05:47 阅读: 评论:0

本文实例讲述了laravel5.7框架安装与使用。分享给大家供大家参考,具体如下:

【安装laravel】

compor安装:

compor create-project --prefer-dist laravel/laravel

目录结构:

网站根目录指向了/public,访问报错:

原因是并没有vendor这个文件夹,看了这篇博客

在根目录执行 compor update,下载了一大堆东西

完事访问一片空白,错误500……然后各种百度,各种设置目录权限:

chmod -r 777 storage/chmod -r 777 bootstrap/cache/chmod -r 777 vendor/

还是不行,最后查看了/storage/logs下面的日志,有报错:

少了这么一个key,再次百度,我的做法是:把根目录.env.example这个隐藏文件重命名为.env

然后根目录执行 php artisan key:generate

(参考博客:)

终于打开了这个页面,真不容易,明天我得吃个鸡腿庆祝一下……

使用php artisan –version 命令查看安装的laravel版本,是最新的5.7版本:

【一些配置】

laravel 所有的配置文件都放在根目录/config下面:

修改app.php,开启debug:

设置时区为asia/shanghai:

控制器目录:

视图层目录:

【初识路由】

与thinkphp相比,laravel不能通过 /模块名/控制器名/操作名 直接访问web界面

每一个web界面都必须在 /routes/web.php中定义一条路由规则:

默认路由配置的意思是:访问根目录(网站首页),渲染视图层的”欢迎”页面:

route::get('/', function () {  return view('welcome');});

在控制器目录新建了一个indexcontroller.php:

<?phpnamespace app\http\controllers;class indexcontroller extends controller{  public function index(){  return '这是首页';  } }

修改首页路由:

route::get('/', 'indexcontroller@index');

再次访问首页:

项目通常会区分前后台,在tp中可以通过划分模块来实现,laravel中同样可以用这个原理

在控制器目录下新建了两个文件夹:index、admin,分别作为前、后台控制器模块:

以后台admin为例,在下面新建两个控河童之夏2制器index和ur

手动创建太low了,laravel使用命令行创建控制器、model,命名空间都自动帮你写好……

php artisan make:controller admin/indexcontroller

indexcontr销售话术oller.php:

<?phpnamespace app\http\controllers\admin装甲兵工程学院;u illuminate\http\request;u app\http\controllers\controller;class indexcontroller extends controller{  public function index(){  return '后台首页';  } }

urcontroller.php:

<?phpnamespace app\http\controllers\admin;u illuminate\http\request;u app\http\controllers\controller;class urcontroller extends controller{  public function urlist(){  return '后台用户列表页';  }   public function uradd(){  return '后台用户添加';  } }

在设置路由的时候,可以通过设置路由组group,共享路由属性。如:命名空间namespace、路由前缀prefix、中间件middleware等。

路由组规则设置如下:

//在app\http\controllers\admin命名空间下的控制器route::namespace('admin')->group(function () {  //后台首页  route::group(['prefix' => 'admin/index'], function () {    // 首页显示    route::get('index', 'indexcontroller@index');  });  //后台用户  route::group(['prefix' => 'admin/ur'], function () {    //用户列表    route::get('urlist', 'urcontroller@urlist');    //用户添加    route::get('uradd', 'urcontroller@uradd');  });});

这样就可以实现类似tp那样的 /模块名/控制器名/操作名 的访问方式:

(当然路由前缀prefix和路由名称可以随意定义,不一定要遵循tp的写法,这里只是为了清晰明了)

【中间件】

laravel的中间件在 /app/http/middleware 目录下,用于过滤http请求,可以做一些字段验证、身份验证、csrf 防护等等……

laravel自带了一些中间件:

例:设置一个checklog中间件,判断用户是否登录,如果登录了可以看用户列表页,否则跳转到首页

执行生成中间件命令:(这里和控制器一样采用前后台目录分开放的方式)

php artisan make:middleware admin/checklog

checklog.php中间件内容:

<?phpnamespace app\http\middleware\admin;u illuminate\http\requ乡村故事est;u closure;class checklog{  /**   * handle an incoming request.   *   * @param \illuminate\http\request $request   * @param \closure $next   * @return mixed   */  public function handle($request, closure $next)  {    $mid = $request->cookie('mid');    if(empty($mid)){      return redirect('admin/index/index');    }    //处理请求之前执行动作    return $next($request);  }}

写好中间件之后需要注册中间件,在 /app/http/kernel.php 里面注册

目的是给路由分配中间件,在 routemiddleware 属性里添加:

'admin.checklog' => \app\http\middleware\admin\checklog::class,

修改/routes/web.php路由配置,给后台用户路由组添加中间件属性:

//后台用户route::group(['prefix' => 'admin/ur' , 'middleware' => 'admin.checklog'], function () {  //用户列表  route::get('urlist', 'urcontroller@urlist');  //用户添加  route::get('uradd', 'urcontroller@uradd');});

此时访问用户列表页,会先走中间件判断登录状态,没登录跳转到首页:

(kernel.php中其他中间件属性:全局中间件$middleware、中间件组$middlewaregroups、中间件执行顺序$middlewarepriority

如果不给路由设置中间件属性,也可以在控制器的构造方法里设置中间件,可以指定或排除具体某一个操作,示例如下:

<?phpnamespace app\http\controllers\admin;u illuminate\http\request;u app\http\controllers\controller;class urcontroller extends controller{  public function __construct(){    //全部操作生效    $this->middleware('admin.checklog');    //仅xxx操作生效    // $this->middleware('admin.checklog')->only('urlist');    //除xxx操作生效    // $this->middleware('admin.checklog')->except('uradd');  }  public function urlist(){  return '后台用户列表页';  }   public function uradd(){  return '后台用户添加';  } }

【请求 request】

获得请求,首先需要引入illuminate\http\request

基本使用:

<?phpnamespace app\http\controllers\admin;u illuminate\http\request;u app\http\controllers\controller;class indexcontroller extends controller{  public function index(request $request){  $uri = '请求路径:'.$request->path();  $url = '请求url:'.$request->url();  $method = '请求方法:'.$request->method();  $name = '获取请求参数:'.$request->input('name');  $mid = '获取cookie:'.$request->cookie('mid');    $key = '获取ssion:'.$request->ssion()->get('key');  $file = '获取上传文件:'.$request->file('photo');  dump($uri);  dump($url);  dump($method);  dump($name);  dump($mid);  dump($file);  //验证请求路径  //if ($request->is('admin/*')) {    //}    //验证请求方法    //if ($request->ismethod('post')) {    //}  } }

【分配数据 渲染视图】

以后台首页视图 /admin/index/index为例:

控制器使用view()函数渲染视图,同时分配数据:

<?phpnamespace app\http\controllers\admin;u app\http\controllers\controller;class indexcontroller extends controller{  public f什么星稀unction index(){  //分配一个字段  // $name = 'lws';    // return view('admin.index.index')->with('name',$name);    //分配数组  $data = ['name' => 'lws','x' => 'nan'];    return view('admin.index.index', $data);    //也可以使用php的compact函数传值    //$name = 'lws';    //$x = 'nan';    //return view('admin.index.index',compact('name','x'));  } }

视图层使用双大括号{{ }}获得数据:

姓名:{{$name}}<br/>性别:{{$x}}

{{ $test }}会自动调用 php 的 htmlspecialchars()函数防止 xss 攻击,如果不需要转义可使用{!! $test!!},例如富文本格式。

更多关于laravel相关内容感兴趣的读者可查看本站专题:《laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于laravel框架的php程序设计有所帮助。

本文发布于:2023-04-07 11:05:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/bb8a43137812c90c9b80726b9c6ca72f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Laravel5.7框架安装与使用学习笔记图文详解.doc

本文 PDF 下载地址:Laravel5.7框架安装与使用学习笔记图文详解.pdf

标签:路由   中间件   后台   首页
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图