Laravel-表单篇-controller

(慕课网_轻松学会Laravel-表单篇_天秤vs永恒老师_http://www.imooc.com/learn/699)

Controller

  1、Controller-Request   

 1 //Request
 2     public function request1(Request $request){
 3         //1、取值
 4         // return $request->input(‘name‘,‘未知‘);
 5         //判断有没有sex
 6         if($request->has(‘sex‘)){
 7             echo $request->input(‘sex‘);
 8         }else{
 9             echo ‘无参数‘;
10         }
11         //获取所有的参数  dd打印,会结束掉脚本
12         $res = $request->all();
13         var_dump($res);
14
15         //判断请求类型
16         echo $request->method();
17         var_dump($request->isMethod(‘GET‘));
18         var_dump($request->ajax());
19         //判断路由
20         var_dump($request->is(‘people/student/*‘));
21         echo ‘<br>‘;
22         //获取当前的url
23         echo $request->url();
24     }

  2、Controller-session

    默认使用file驱动,可以在配置文件中修改 Laravel中使用session有三种方式

    1)、HTTP request类中的session()方法

    2)、session()辅助函数

    3)、Session facade

    代码示例:

    路由

  

1    Route::group([‘middleware‘ => [‘web‘]], function(){
2         Route::get(‘student/setSession‘,‘People\[email protected]‘);
3         Route::get(‘student/getSession‘,‘People\[email protected]‘);
4         Route::get(‘student/deleteSession‘,‘People\[email protected]‘);
5     }); 
use Symfony\Component\HttpFoundation\Request;
use Illuminate\Support\Facades\Session;
 1 //设置session
 2     public function setSession(Request $request){
 3         //1 HTTP request
 4         $request->session()->put(‘key1‘,‘value1‘);
 5
 6         // 2 session()
 7         session()->put(‘key2‘,‘value2‘);
 8
 9         //3 Session类
10         Session::put(‘key3‘,‘value3‘);
11
12         Session::put([‘key5‘=>‘value5‘,‘key6‘=>‘value6‘]);
13         //把数据放在数组中
14         Session::push(‘student‘,‘helloJiu‘);
15         Session::push(‘student‘,‘sss‘);
16
17         //存入session,获取一次就消失;
18         Session::flash(‘key-flash‘,‘value-flash‘);
19     }
20     //获取session
21     public function getSession(Request $request){
22         //1 HTTP request
23         echo $request->session()->get(‘key1‘);
24
25         // 2 session()
26         echo session()->get(‘key2‘);
27
28         //3 Session类
29         echo Session::get(‘key3‘,‘default‘);
30         //不存在,使用默认值
31         echo Session::get(‘key4‘,‘default‘);
32         echo Session::get(‘key6‘);
33
34         var_dump(Session::get(‘student‘,‘default‘));
35         //从session拿出数据就删除
36         var_dump(Session::pull(‘student‘));
37
38         //取出session所有的值
39         echo ‘<pre>‘;
40         var_dump(Session::all());
41
42         //判断session中某个key是否存在
43         var_dump(Session::has(‘key1‘));
44         //第一次访问时存在,下次消失
45         echo Session::get(‘key-flash‘);
46
47     }
48
49     //输出session中的值
50     public function deleteSession(){
51         //在session中删除key1和其对应的值
52         Session::forget(‘key1‘);
53
54         //删除所有的session
55         Session::flush();
56     }

  3 Controller-Response

  响应的常见类型:字符串,视图,Json,重定向

  

 1 public function response(){
 2
 3         $data = [
 4             ‘errCode‘ => 0,
 5             ‘errMsg‘ => ‘success‘,
 6             ‘data‘ => ‘helloJiu‘,
 7         ];
 8         //响应一个json数据
 9         return response()->json($data);
10
11         //重定向,with原理是存入session,获取一次就删除
12         return redirect(‘people/student/getSession‘)->with(‘message‘,‘hellojiu‘);
13         return redirect()->action(‘People\[email protected]‘)->with(‘message‘,‘helloJiu‘);
14         return redirect()->route(‘people/student/setSession‘);
15         return redirect()->back();//返回上一个页面
16     }

  4 Controller之Middleware

   Laravel中间件提供了一个方便的机制来过滤进入应用程序的HTTP请求

   如:有一个活动,在指定日期后开始,如果活动没有开始,只能访问宣传页面

    新建中间件、注册中间件、使用中间件、中间件的前置和后置操作

   控制器中有三个方法,activity1(为注册中间件)activity2\activity3都注册了,代码如下

    1)控制器   

 1 //对应活动的宣传页面
 2     public function activity1(){
 3         return ‘活动快要开始了‘;
 4     }
 5
 6     public function activity2(){
 7         return ‘活动进行中‘;
 8     }
 9     public function activity3(){
10         return ‘活动完成,谢谢参与‘;
11     }

  2)、路由系统  

1     //宣传页面
2     Route::any(‘student/activity1‘,‘People\[email protected]‘);
3     //活动页面,需要经过中间件验证
4     Route::group([‘middleware‘ => [‘activity‘]], function(){
5
6         Route::any(‘student/activity2‘,‘People\[email protected]‘);
7         Route::any(‘student/activity3‘,‘People\[email protected]‘);
8     });

  3)、Http\Middleware\Activity.php中间件代码

 1 <?php
 2 namespace App\Http\Middleware;
 3 use Closure;
 4
 5 class Activity{
 6
 7     //前置操作
 8     public function handle($request, Closure $next){
 9
10         if(time() < strtotime(‘2016-12-3‘)){
11             return redirect(‘people/student/activity1‘);
12         }
13         //访问当前页面
14         return $next($request);
15     }
16
17     //后置操作
18     // public function handle($request, Closure $next){
19
20     //     $response = $next($request);
21
22     //     //逻辑在请求后面执行
23     //     echo ‘我是后置‘;
24     // }
25 }

  4)、App\Http\Kernel.php进行中间件注册  

1 protected $routeMiddleware = [
2         ‘auth‘ => \App\Http\Middleware\Authenticate::class,
3         ‘auth.basic‘ => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
4         ‘guest‘ => \App\Http\Middleware\RedirectIfAuthenticated::class,
5         ‘throttle‘ => \Illuminate\Routing\Middleware\ThrottleRequests::class,
6         ‘activity‘ => \App\Http\Middleware\Activity::class,
7     ];

   当请求activity2时,路由系统发现有中间件,就会通过Kerne找到Activity,调用其handle()方法,进行判断

  

    

  

时间: 2024-10-27 03:56:52

Laravel-表单篇-controller的相关文章

Laravel表单篇----request请求,session存储,response响应以及中间件

请求Request 取值(传入参数Request $request) $request -> input('name');(请求name值) $request -> input('sex', '未知');(也可以请求未被定义的参数) $request -> all();(得到所有请求值) 判断取值类型 $request -> method();(判断请求类型) $request -> isMethod('GET');(判断是否为get请求) $request -> aj

laravel 表单和HTML扩展包

安装 通过composer安装扩展包. 在根目录的composer.json文件中添加laravelcollective/html. "require": { "laravelcollective/html": "5.3.*" } 接着在终端中更新composer: composer update 然后,在config/app.php文件中添加新的providers: 'providers' => [ // ... Collective\H

Laravel表单提交

首先,先做一个简单的表单页面 <html> <head> </head> <body> <form action="/submit" method="post"> <input type="text" name="a"></input> <input type="text" name="b">

laravel 表单方法伪造

有时候,我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他的方式,则需要自己来定义实现. HTTP 请求方式概述 最常见的 HTTP 请求方式自然是 GET 和 POST,相信你已经很熟悉,除此之外,HTTP 协议还定义了很多其他的请求方式,可以在 HTTP/1.1: Method Definitions 中查看 HTTP/1.1 协议支持的所有请求方式,不同的请求方式用于不同类型的请求: OPTIONS:允许客

自定义laravel表单请求验证类(FormRequest共用一个rules())

我们可以利用Form Request来封装表单验证代码,从而精简Controller中的代码逻辑,使其专注于业务.而独立出去的表单验证逻辑可以复用到其它请求中,看过几篇文章,大多都是讲怎么创建Request,表面看起来是将逻辑与业务分离了,但是没有做到复用,一个业务就得新建一个Request类实在太累,索性这里我将项目全部的表单验证放在一个Request类里,实现高度可复用,下面是具体实现. 首先创建Request php artisan make:request CreateUserReque

前端坑--表单篇

一.关闭火狐浏览器自动表单填写 <input autocomplete="off" /> 火狐浏览器会根据历史填的表单自动完成填写如单选按钮.复选框等,而且会使代码中设置的 checked="checked" 这种默认选中失效,甚至有时连JS的修改也没有作用,这会给我们的开发带来诸多不便.所以一般有程序默认设定值的表单都建议加上 autocomplete="off" 二.关闭手机端输入框首字母大写 <input type=&qu

文件上传之form表单篇

form表单上传文件 作为本系列的最后一篇,也是楼主知道的第三种文件上传的方式--隆重推出Form表单 这是最传统的上传文件,提交数据的方式 Html: 1 <form action="/home/receive" method="post" enctype="multipart/form-data"> 2 <input type="file" name="f1" id="f1&

实用的JS代码段(表单篇)

整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onload执行一个方法.下面代码段,可以保证多个方法在Onload时执行: function addLoadEvent(func){ var oldonload = window.onload; if(typeof window.onload != 'function'){ window.onload =

laravel 表单验证 正则匹配

判断url地址 是否为正确格式 控制器中 $this -> validate($request,[ 'linkname' => 'required|max:6|min:2', 'url' => 'required', 'url' => array('regex:/(http?|ftp?):\/\/(www)\.([^\.\/]+)\.(com|cn)(\/[\w-\.\/\?\%\&\=]*)?/i'), 'order' => 'required|regex:[[0-