一、预备知识Laravel目录/path/to简称为LaravelWeb,Laravel/public目录简称为Web入口文件Web/index.phpII。过程详细示例:http://la.com/test/yueshu/female/20?name=chenxuelong1。定义web路由文件路径:Laravel/routes/web.php修改如下:Route::get('/test/{name}/{sex}/{age}','TestController@test')2.定义中间件2.1中间件路径:Laravel/app/Http/Middleware2.2新建中间件Test.php:namespaceApp\Http\Middleware;useClosure;classTest{/***必须返回一个响应(response)*/publicfunctionhandle($request,Closure$next){//在处理请求之前做一些事情...$response=$next($request);//处理请求后做一些事情return$response;}/***middle中间件处理完后做什么*/publicfunctionterminate($request,$response){//中间件处理完后做什么...}}2.3注册中间件中间件附件文件路径:Laravel/App/Http/Kernel.php添加到routeMiddleware键名下:'Test'=>\App\Http\Middleware\Test::class4。表单验证(请求)文件存放目录:Laravel/app/Http/Requests新建FormValidate.php验证类:/***验证失败时,通过header中的referer重定向到*上一页*/namespaceApp\Http\Requests;useIlluminate\Foundation\Http\FormRequest;classFormValidateextendsFormRequest{//是否授权访问publicfunctionauthorize(){returntrue;}//验证规则publicfunctionrules(){/***required表示必须*max:255最大长度255*/return['name'=>'required|max:255'];}}5。模型文件路径:Laravel/appnewmodelTest.phpnamespaceApp;useIlluminate\Database\Eloquent\Model;classTestextendsModel{//获取一个表的所有数据(querybuilder)publicfunctionget($table){\DB::table($table)->get();}//get(nativesql)publicfunctionselect($sql,$params){\DB::select($sql,$params);}//插入(本机sql)publicfunctioninsert($sql,$params){\DB::insert($sql,$params);}//更新(原生sql)publicfunctionupdate($sql,$params){\DB::update($sql,$params);}//删除(原生sql)publicfunctiondelete($sql,$params){\DB::delete($sql,$params);}//执行通用sql(原生sql)publicfunctionstatement($sql,$params){\DB::statement($sql,$params);}//事务publicfunctiontransaction($sql,callable$callback){\DB::transaction($sql,$callback):}//手动启动事务publicfunctionbeginTransaction(){\DB::beginTransaction();}//手动回滚publicfunctionrollBack(){\DB::rollBack();}//提交公共函数commit(){\DB::commit();}}6。Controller控制器路径:Laravel/app/Http/Controllers新建控制器TestController.php命名空间App\Http\Controllers;useApp\Http\Controllers\Controller;//引入请求验证类useApp\Http\Requests\FormValidate;/*可选注入模型类(分层)*ThisSide引入了一个Test模型类*/useApp\Test;classTestControllerextendsController{//构造函数(可以添加中间件或注入)function__construct(Test$test){//添加之前注册的中间件$this->middleware('Test');//注入模型类$this->test=$t美东时间;}/***路由中设置的动作名称*通过类型提示引入请求验证*/publicfunctiontest(FormValidate$request,$name,$sex,$age){//Validatedrequest.....$data=[];if(view()->exists('test')){view('test',$data);}else{exit('模板文件不存在....');}}}7.View视图路径:Laravel/resource/views新建test.blade.php视图文件
