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

【安装Laravel】

Composer安装:

composer create-project --prefer-dist laravel/laravel

目录结构:

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

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

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

原因是并没有vendor这个文件夹,看了这篇博客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下面的日志,有报错:

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

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

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

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

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

(参考博客:https://blog.csdn.net/qq_39479575/article/details/78495703)

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

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

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

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

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

【一些配置】 

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

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

修改app.php,开启debug:

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

设置时区为Asia/Shanghai:

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

控制器目录:

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

视图层目录:

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

【初识路由】

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

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

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

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

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

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

<"htmlcode">
Route::get('/', 'IndexController@index');

再次访问首页:

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

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

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

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

以后台Admin为例,在下面新建两个控制器Index和User

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

php artisan make:controller Admin/IndexController

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

IndexController.php:

<"htmlcode">
<"htmlcode">
//在App\Http\Controllers\Admin命名空间下的控制器
Route::namespace('Admin')->group(function () {
  //后台首页
  Route::group(['prefix' => 'admin/index'], function () {
    // 首页显示
    Route::get('index', 'IndexController@index');
  });

  //后台用户
  Route::group(['prefix' => 'admin/user'], function () {
    //用户列表
    Route::get('userlist', 'UserController@userlist');

    //用户添加
    Route::get('useradd', 'UserController@useradd');
  });
});

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

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

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

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

【中间件】

Laravel的中间件在 /app/Http/Middleware 目录下,用于过滤HTTP请求,可以做一些字段验证、身份验证、CSRF 防护等等......

Laravel自带了一些中间件:

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

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

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

php artisan make:middleware Admin/CheckLog

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

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

CheckLog.php中间件内容:

<"color: #0000ff">/app/Http/Kernel.php 里面注册

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

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

'admin.checklog' => \App\Http\Middleware\Admin\CheckLog::class,

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

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

//后台用户
Route::group(['prefix' => 'admin/user' , 'middleware' => 'admin.checklog'], function () {
  //用户列表
  Route::get('userlist', 'UserController@userlist');

  //用户添加
  Route::get('useradd', 'UserController@useradd');
});

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

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

(Kernel.php中其他中间件属性:全局中间件$middleware、中间件组$middlewareGroups、中间件执行顺序$middlewarePriority) 

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

<"color: #0000ff">Illuminate\Http\Request 类

基本使用:

<"has" alt="" width="690" height="333" src="/UploadFiles/2021-04-02/2019040211465949.png">

【分配数据 渲染视图】

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

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

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

<"htmlcode">
姓名:{{$name}}<br/>
性别:{{$sex}}

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

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

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

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

标签:
Laravel5.7框架,安装,使用,学习笔记

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?