一、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请求:
-
<?php
-
//基本路由的get请求
-
Route::get('get_base', function(){return 'get request base';
-
});
浏览器输入:http://127.0.0.1/laravel/public/get_base 页面输出:get request base
post请求:
-
<?php
-
//基本路由的post请求
-
Route::post('post_base', function(){return 'post request base';
-
});
以上路由需要通过post方式请求,这里不做演示 请求后页面输出:post request base
2、多请求路由
顾名思义,多请求路由则是可以通过多种请求方式进行请求,多请求路由主要有两种方式,match和any
(1)、match接收请求类型的数组从而限定请求的类型:
-
<php//多请求路由matchRoute::match(['get','post'], 'multi', function(){return 'multi post or get';
-
});
url:http://127.0.0.1/laravel/public/multi 此路由可通过get、post请求 请求后返回字符串:multi post or get
(2)、any方式
-
<?php
-
//any方式
-
Route::any('multi', function(){return 'multi get or post';
-
});
url:http://127.0.0.1/laravel/public/multi 请求返回字符串:multi get or post
3、路由参数
给路由绑定参数,接收参数进行处理
(1)、必选参数
-
<?php
-
//带参数的路由
-
Route::get('myname/{name}', function($name){return 'my name is '.$name;
-
});
url:http://127.0.0.1/laravel/public/myname/yuwenbo get访问后页面输出:my name is yuwenbo
(2)、可选参数($userid=null表示默认值,可设置没有参数时的默认值)
-
<?php
-
//可选参数绑定
-
Route::get('user/{userid?}', function($userid=null){return 'userid is '.$userid;
-
});
访问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()函数输入视图
-
<?php
-
/**
-
* 路由中输出视图
-
*/
-
//框架的欢迎界面路由
-
Route::get('/',function(){return view('welcome');
-
});访问url:http://127.0.0.1/laravel/public
-
浏览器显示laravel的欢迎界面//做如下修改
-
Route::get('welcome',function(){return view('welcome');
-
});
修改后访问url:http://127.0.0.1/laravel/public/welcome 浏览器同样显示laravel的欢迎界面
三、控制器介绍
控制器目录app/Http/Controller,此目录下有一个基本的控制器Controller,新增的控制器统一继承此Controller;
命名空间:namespce App\Http\Controller;
命名规则:控制器文件名跟类名统一首字母大写,以 控制器名+Controller 为命名规则,比如新建一个控制器 :
-
<?php
-
/*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 0:51*/
-
namespace App\Http\Controllers;class AdminController extends Controller
-
{public function index(){return view('admin/index');}
-
}
新建控制器AdminController继承于基类Controller
1、路由关联控制器,通过路由访问控制器程序:
-
<?php
-
//路由关联映射控制器方法一:
-
Route::get('admin/index', 'AdminController@index');//路由关联控制器方法二:
-
Route::get('admin/index', ['uses' => 'AdminController@index']);//路由别名关联控制器:
-
Route::get('admin/index', ['uses' => 'AdminController@index','as' => 'adminindex'
-
]);
四、模型
laravel框架的模型文件在app目录下,统一首字母大写,文件名与类名一致,统一继承于 Illuminate\Database\Eloquent\Model 基类;
(一)、新建模型及使用
-
//模型文件
-
<?php
-
/*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 13:35*/
-
namespace App;
-
use Illuminate\Database\Eloquent\Model;class Admin extends Model
-
{public static function getAdmin(){return 'this is admin model static getAdmin action';}}?>//控制器文件
-
<?php
-
/*** Created by PhpStorm.* User: Administrator* Date: 2018/8/25/025* Time: 0:51*/
-
namespace App\Http\Controllers;class AdminController extends Controller
-
{public function index(){return Admin::getAdmin();}
-
}