PHP框架laravel简介

时间:2024-10-03 07:08:30

 一、laravel简介

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

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

二、路由介绍

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

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

1、基本路由

get请求:

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

post请求:

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

2、多请求路由

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

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

  1. <php//多请求路由matchRoute::match(['get','post'], 'multi', function(){return 'multi post or get';
  2. });
url:http://127.0.0.1/laravel/public/multi
此路由可通过get、post请求
请求后返回字符串:multi post or get

(2)、any方式

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

3、路由参数

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

(1)、必选参数

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

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

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

4、路由中输出视图

通过view()函数输入视图

  1. <?php
  2. /**
  3. * 路由中输出视图
  4. */
  5. //框架的欢迎界面路由
  6. Route::get('/',function(){return view('welcome');
  7. });访问url:http://127.0.0.1/laravel/public
  8. 浏览器显示laravel的欢迎界面//做如下修改
  9. Route::get('welcome',function(){return view('welcome');
  10. });

修改后访问url:http://127.0.0.1/laravel/public/welcome 浏览器同样显示laravel的欢迎界面

 三、控制器介绍

控制器目录app/Http/Controller,此目录下有一个基本的控制器Controller,新增的控制器统一继承此Controller;

命名空间:namespce  App\Http\Controller;

命名规则:控制器文件名跟类名统一首字母大写,以 控制器名+Controller 为命名规则,比如新建一个控制器 :

  1. <?php
  2. /*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 0:51*/
  3. namespace App\Http\Controllers;class AdminController extends Controller
  4. {public function index(){return view('admin/index');}
  5. }

新建控制器AdminController继承于基类Controller

 1、路由关联控制器,通过路由访问控制器程序:

  1. <?php
  2. //路由关联映射控制器方法一:
  3. Route::get('admin/index', 'AdminController@index');//路由关联控制器方法二:
  4. Route::get('admin/index', ['uses' => 'AdminController@index']);//路由别名关联控制器:
  5. Route::get('admin/index', ['uses' => 'AdminController@index','as' => 'adminindex'
  6. ]);

四、模型

 laravel框架的模型文件在app目录下,统一首字母大写,文件名与类名一致,统一继承于 Illuminate\Database\Eloquent\Model 基类;

(一)、新建模型及使用

  1. //模型文件
  2. <?php
  3. /*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 13:35*/
  4. namespace App;
  5. use Illuminate\Database\Eloquent\Model;class Admin extends Model
  6. {public static function getAdmin(){return 'this is admin model static getAdmin action';}}?>//控制器文件
  7. <?php
  8. /*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 0:51*/
  9. namespace App\Http\Controllers;class AdminController extends Controller
  10. {public function index(){return Admin::getAdmin();}
  11. }