laravel框架基础知识

本文是关于laravel框架的基础知识,介绍了laravel的版本选择、下载安装、开发环境搭建、路由、控制器、模型、视图等内容。重点讲解了路由的使用,包括基本路由、多请求路由、路由参数和路由群组。同时,提到了模型中的数据库操作,如DB facade和查询构造器的使用。文章适合laravel初学者阅读。
摘要由CSDN通过智能技术生成

一、laravel简介

laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全;以下是本人在学习过程中记录的laravel比较基础的资料,权当学习笔记,请大神们多多指教

二、版本选择

本篇学习笔记以laravel5.2.15版本为框架的版本基础;更多版本请移步https://www.golaravel.com/

三、laravel下载安装以及开发环境搭建

(一):环境搭建

  由于laravel使用较多的php新特性,所以新版本的laravel对PHP的版本要求比较高,这里选择的laravel5.2.15要求 PHP>5.5.9+ 。Win系统下推荐使用集成的开发环境比如wamp、phpStudy、Xampp都可以,下载安装的时候需要注意PHP版本,Linux系统下需要编译安装,这里推荐一篇博客https://www.linuxidc.com/Linux/2016-10/136327.htm(ubuntu下lamp开发环境搭建)。本篇学习笔记也是基于lamp环境下

(二):下载、安装及大致介绍

  1、安装包下载安装

  原本laravel中文网是可以下载一键安装包的,但是等我去下载的时候发现没地方可以下载,也只能通过度娘找其它下载资源下载安装包然后安装;我的资源:https://github.com/yuwenbo5/laravel5.2.15.git;下载安装包后解压更改名称(laravel),直接拷贝到环境根目录www(win下wamp环境)或者 /var/www/html(linux下lamp环境)中;打开浏览器输入url:localhost/laravel/public 然后回车,出现如下画面表示安装成功:

  2、composer安装

  cd到环境根目录,使用命令:composer create-project --prefer-dist laravel/laravel=5.2.15  laravel(项目名称,可修改)

  3、简单介绍

  laravel是基于mvc模式的php框架,m——模型层,v——视图层,c——控制器层;以下为laravel框架的目录文件,框出来的文件目录将在后续中用到:

  

  app是应用的核心代码文件目录,以后的代码基本都在这里完成;app/Http/Controller目录是应用的控制器文件;routes.php是框架的路由文件,负责路由分配和映射;Http下的类文件,比如上面目录中的User.php、Menu.php文件是应用的模型文件;config目录是所有应用的配置文件目录;public是框架的入口文件及静态资源文件目录;resources/views则是应用的视图文件目录。

四、laravel路由

  (一):简介

  用过thinkPHP的开发者都知道,传统的MVC的url都是对应应用的控制器及控制器中的方法,laravel中的MVC则是通过路由功能映射到对应的程序(控制器方法),通过路由将用户的请求发送到对应的程序进行处理,其作用就是建立url和处理程序之间的映射关系,这样做有一个好处,对url进行美化只需要修改路由而无需对程序本身进行修改。

  laravel中请求类型包括:get、post、put、patch、delete。

  前面说了route.php是laravel的路由文件,所有的路由映射都要通过编辑route.php文件进行代码书写。

  (二):路由学习

    1、基本路由

    get请求:

 1 <?php
 2 
 3 //基本路由的get请求
 4 
 5 Route::get('get_base', function(){
 6     return 'get request base';
 7 });
 8 
 9 
10 浏览器输入:http://127.0.0.1/laravel/public/get_base
11 页面输出:get request base

    post请求:

 1 <?php
 2 
 3 //基本路由的post请求
 4 
 5 Route::post('post_base', function(){
 6     return 'post request base';
 7 });
 8 
 9 
10 以上路由需要通过post方式请求,这里不做演示
11 请求后页面输出:post request base

 

    2、多请求路由

    顾名思义,多请求路由则是可以通过多种请求方式进行请求,多请求路由主要有两种方式,match和any

    (1)、match接收请求类型的数组从而限定请求的类型:

 1 <php
 2 
 3 //多请求路由match
 4 
 5 Route::match(['get','post'], 'multi', function(){
 6     return 'multi post or get';
 7 });
 8 
 9 url:http://127.0.0.1/laravel/public/multi
10 此路由可通过get、post请求
11 请求后返回字符串:multi post or get

    

    (2)、any方式

 1 <?php
 2 
 3 //any方式
 4 
 5 Route::any('multi', function(){
 6    return 'multi get or post';
 7 });
 8 
 9 
10 url:http://127.0.0.1/laravel/public/multi
11 请求返回字符串:multi get or post

 

    3、路由参数

    给路由绑定参数,接收参数进行处理

    (1)、必选参数

 1 <?php
 2 
 3 //带参数的路由
 4 
 5 Route::get('myname/{name}', function($name){
 6     return 'my name is '.$name;
 7 });
 8 
 9 
10 url:http://127.0.0.1/laravel/public/myname/yuwenbo
11 get访问后页面输出:my name is yuwenbo

 

     (2)、可选参数($userid=null表示默认值,可设置没有参数时的默认值)

 1 <?php
 2 
 3 //可选参数绑定
 4 
 5 Route::get('user/{userid?}', function($userid=null){
 6     return 'userid is '.$userid;
 7 });
 8 
 9 访问url:http://127.0.0.1/laravel/public/user/username
10 输出:userid is username
11 
12 访问url:http://127.0.0.1/laravel/public/user
13 输出:userid is
14 
15 可选参数绑定使得路由很灵活

 

    (3)、路由参数过滤(用正则表达式对传入的参数进行过滤)

 1 <?php
 2 
 3 /*
 4 参数过滤
 5 */
 6 
 7 //单个参数过滤
 8 Route::get('num/{num?}', function($num=15){
 9     return 'this num is '.$num;
10 })->where('num','[0-9]+');
11 
12 访问url:http://127.0.0.1/laravel/public/num/5
13 返回输出:this num is 5
14 
15 访问url:http://127.0.0.1/laravel/public/num
16 返回输出:this num is 15
17 
18 访问url:http://127.0.0.1/laravel/public/num/fhdja
19 页面报错
20 
21 //多个参数过滤
22 Route::get('info/{name}/{age?}', function($name,$age=null){
23     return 'name is '.$name.', age is '.$age;
24 })->where(['name' => '[a-zA-Z]+', 'age' => '[1-9]+']);
25 
26 可使用数组形式过滤多个参数

 

    4、路由别名

    给路由通过['as' => 'alias']数组使用别名后,可通过route('别名')生成url,请看代码理解:

 1 <?php
 2 
 3 //路由别名
 4 
 5 Route::get('student/info',['as' => 'studentInfo' ,function(){
 6 
 7     //通过route('studentInfo')生成完成url后返回
 8     return route('studentInfo');
 9 
10 }]);
11 
12 
13 访问url:http://127.0.0.1/laravel/public/student/info
14 页面返回:http://127.0.0.1/laravel/public/student/info
15 
16 注:别名的好处在于,以后在控制器中使用route('别名')的方式生成url后,即便修改了路由的名字,也不用再修改控制器程序,因为通过别名程序能自动生成修改后的url

 

    5、路由群组

    通过关键字group创建路由群组

 1 <?php
 2 
 3 /*
 4 *路由群组
 5 */
 6 
 7 Route::group(['prefix' => 'admin'], function(){
 8     
 9     //此时的访问地址:http://127.0.0.1/laravel/public/admin/student/info
10     Route::get('student/info',['as' => 'studentInfo' ,function(){
11         return route('studentInfo');
12     }]);
13 
14     //此时的访问地址:http://127.0.0.1/laravel/public/admin/info/yuwenbo/20
15     Route::get('info/{name}/{age?}', function($name,$age=null){
16         return 'name is '.$name.', age is '.$age;
17     })->where([&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值