Laravel-表单篇-controller
(慕课网_轻松学会Laravel-表单篇_天秤vs永恒老师_http://www.imooc.com/learn/699)
Controller
1、Controller-Request
//Request
public function request1(Request $request){
//1、取值
// return $request->input('name','未知');
//判断有没有sex
if($request->has('sex')){
echo $request->input('sex');
}else{
echo '无参数';
}
//获取所有的参数 dd打印,会结束掉脚本
$res = $request->all();
var_dump($res); //判断请求类型
echo $request->method();
var_dump($request->isMethod('GET'));
var_dump($request->ajax());
//判断路由
var_dump($request->is('people/student/*'));
echo '<br>';
//获取当前的url
echo $request->url();
}
2、Controller-session
默认使用file驱动,可以在配置文件中修改 Laravel中使用session有三种方式
1)、HTTP request类中的session()方法
2)、session()辅助函数
3)、Session facade
代码示例:
路由
Route::group(['middleware' => ['web']], function(){
Route::get('student/setSession','People\StudentController@setSession');
Route::get('student/getSession','People\StudentController@getSession');
Route::get('student/deleteSession','People\StudentController@deleteSession');
});
use Symfony\Component\HttpFoundation\Request;
use Illuminate\Support\Facades\Session;
//设置session
public function setSession(Request $request){
//1 HTTP request
$request->session()->put('key1','value1'); // 2 session()
session()->put('key2','value2'); //3 Session类
Session::put('key3','value3'); Session::put(['key5'=>'value5','key6'=>'value6']);
//把数据放在数组中
Session::push('student','helloJiu');
Session::push('student','sss'); //存入session,获取一次就消失;
Session::flash('key-flash','value-flash');
}
//获取session
public function getSession(Request $request){
//1 HTTP request
echo $request->session()->get('key1'); // 2 session()
echo session()->get('key2'); //3 Session类
echo Session::get('key3','default');
//不存在,使用默认值
echo Session::get('key4','default');
echo Session::get('key6'); var_dump(Session::get('student','default'));
//从session拿出数据就删除
var_dump(Session::pull('student')); //取出session所有的值
echo '<pre>';
var_dump(Session::all()); //判断session中某个key是否存在
var_dump(Session::has('key1'));
//第一次访问时存在,下次消失
echo Session::get('key-flash'); } //输出session中的值
public function deleteSession(){
//在session中删除key1和其对应的值
Session::forget('key1'); //删除所有的session
Session::flush();
}
3 Controller-Response
响应的常见类型:字符串,视图,Json,重定向
public function response(){
$data = [
'errCode' => 0,
'errMsg' => 'success',
'data' => 'helloJiu',
];
//响应一个json数据
return response()->json($data);
//重定向,with原理是存入session,获取一次就删除
return redirect('people/student/getSession')->with('message','hellojiu');
return redirect()->action('People\StudentController@getSession')->with('message','helloJiu');
return redirect()->route('people/student/setSession');
return redirect()->back();//返回上一个页面
}
4 Controller之Middleware
Laravel中间件提供了一个方便的机制来过滤进入应用程序的HTTP请求
如:有一个活动,在指定日期后开始,如果活动没有开始,只能访问宣传页面
新建中间件、注册中间件、使用中间件、中间件的前置和后置操作
控制器中有三个方法,activity1(为注册中间件)activity2\activity3都注册了,代码如下
1)控制器
//对应活动的宣传页面
public function activity1(){
return '活动快要开始了';
} public function activity2(){
return '活动进行中';
}
public function activity3(){
return '活动完成,谢谢参与';
}
2)、路由系统
//宣传页面
Route::any('student/activity1','People\StudentController@activity1');
//活动页面,需要经过中间件验证
Route::group(['middleware' => ['activity']], function(){ Route::any('student/activity2','People\StudentController@activity2');
Route::any('student/activity3','People\StudentController@activity3');
});
3)、Http\Middleware\Activity.php中间件代码
<?php
namespace App\Http\Middleware;
use Closure; class Activity{ //前置操作
public function handle($request, Closure $next){ if(time() < strtotime('2016-12-3')){
return redirect('people/student/activity1');
}
//访问当前页面
return $next($request);
} //后置操作
// public function handle($request, Closure $next){ // $response = $next($request); // //逻辑在请求后面执行
// echo '我是后置';
// }
}
4)、App\Http\Kernel.php进行中间件注册
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'activity' => \App\Http\Middleware\Activity::class,
];
当请求activity2时,路由系统发现有中间件,就会通过Kerne找到Activity,调用其handle()方法,进行判断
Laravel-表单篇-controller的更多相关文章
- Laravel表单传值
仔细阅读过Laravel官方文档的就不用看啦~ 整理下之前遇到的关于Laravel表单的一些小问题 表单传值无法传过去,因为laravel做了表单的防护 只需要将{{ csrf_field() }}放 ...
- Laravel表单验证提示设置多语言
默认表单提示是英文的,我们可以安装语言包构建多语言环境. 根据版本选择命令 For Laravel 7.x : run composer require caouecs/laravel-lang:~6 ...
- 社群系统 ThinkSNS+ 中如何利用 Laravel 表单验证来验证用户名的?(我朝独有需求,两个字母占一个汉字。。。)
ThinkSNS+后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发.语言特性方面,采用 php 7 的严格模式. 言归正传,之所 ...
- laravel 表单验证 Exists 规则的基本使用方法
public function rules(){ return [ 'm_pushing_frequency_level_id' => 'integer|required|exists:m_pu ...
- laravel 表单方法伪造
有时候,我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式,而 HTML 表单仅支持 GET 和 POST 两种方式,如果要使用其他的方式,则需要自己来定义实现. HTTP 请求方式概述 最 ...
- 表单向controller传值如果没填controller取到的是null
jsp前端表单,向controller传数据,如果没有值,后台传入的是null,比如checkbox未选中,后台设置的Integer[] ids,接收到的ids=null,hidden标签如果没有值, ...
- 处理laravel表单提交默认将空值转为null的问题
比如表单提交,如果我们提交了这个字段,但是这个字段为空字符串.在Laravel中会自动转义成Null. 处理这个问题,直到找到中间件\vendor\laravel\framework\src\Illu ...
- laravel表单验证
效果展示: 代码 实现: 后台: use Validator; public function login() { if($input = Input::all()){ //验证提交的 ...
- laravel表单操作
$request->all()//获取所有参数if($request->isMethod('GET')){判断是否是GET请求}$res = $request->is('studen ...
随机推荐
- 视图的touch事件的传播控制
在视图控制器类中.self.view中会包含多个多层的自己定义视图. 我自己定义了一个uicollectionview类,名称为gridview,又自己定义了一个uicollectionviewcel ...
- 复合命令A等效于$a
时间:2014.06.28 地点:基地 ------------------------------------------------------------------------------- ...
- 前端 JavaScript基础
前言 JavaScript 是属于网络的脚本语言,被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. 一.如何编写 1.存在形式 方式一:存在js文件中,即写入j ...
- DataSet ,DataTable,DataRow 之间的关系与使用
关系 DataSet 包含多个DataTable,DataTable包含多行DataRow. 使用情况: 有时候GridView等控件需要将数据源动态绑定到DataSet中:将多个DataSe ...
- 华硕笔记本怎么设置u盘启动(两种方法)
华硕笔记本怎么设置u盘启动(两种方法) 华硕笔记本怎么设置u盘启动.我想用U盘安装系统但是 我不知道如何设置U盘启动,那么该如何设置呢?下面和大家分享一下我的经验,希望能够帮到大家.如果你的系统是预装 ...
- lvm拉伸逻辑卷分区小总结
文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/vg_znl-lv_root ...
- SQL从入门到基础 - 06 限制结果集范围
一.限制结果集行数 1. Select top 5* from T_Employee order by FSalary DESC 2. (*)检索按照工资从高到低排序检索从第六名开始一共四个人的信息: ...
- ref参数的用途
ref参数 能够将一个变量带入方法进行改变,改变完成后再将改变完成后的变量带出方法 ref参数要求在方法外必须为值赋值,而方法内可以不赋值 static void Main(string[] arr) ...
- poj3252 组合数学
题目大意:给两个数字a,b求出[a,b]中转化成二进制后0的个数大于等于1的个数的数 例如1100转化成10-11,100-111,1000-1011,1100.保证每个区段都有1打头,然后有一段数字 ...
- 【转】【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
转自:http://www.cnblogs.com/particle/archive/2012/09/01/2667034.html#commentform malloc: 原型:extern voi ...