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 ...
随机推荐
- ExtJS4.2学习(11)——高级组件之Grid
大纲: 1.首先,搭建起来一个最基础的Grid组件: 2.其次,利用前边MVC架构将代码重构: 3.再者,介绍下Grid的一些特性. 一.搭建基础的Grid组件 在文章的开始,我们首先简单的搭建一个G ...
- Tomcat全攻略
内容: 一:简单介绍 二:安装及配置 三:应用 四:综述 參考资料 关于作者 相关内容: TCP/IP 介绍 TCP/IP 介绍 !== End Related dW Content Area --& ...
- 使用AudioTrack播放PCM音频数据(android)
众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPl ...
- 设置开机启动时指定非ROOT用户执行相应的脚本
[root@MSJTVL-MJSP-A01 sm01]# vim /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *afte ...
- C语言函数指针(转载)
二.通常的函数调用 一个通常的函数调用的例子:/* 自行包含头文件 */void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */int main(int a ...
- Java初转型-MavenWEB项目搭建
http://www.cnblogs.com/xdp-gacl/p/4054814.html
- 让 asp.net mvc 支持 带有+ _ 等特殊字符的路由
最近配置微信 业务域名 时,需要在服务器的根目录中上传一个文本文件,而这个文本文件需要放这样的目录中: 于在就在 服务器目录中创建了对应的文件夹,并将kuPv.txt上传,但是访问时,却怎么也访问不到 ...
- iOS_SN_CocoaPods使用详细说明( 转)
一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...
- PHP学习系列(1)——字符串处理函数(5)
31.ord() 函数返回字符串第一个字符的 ASCII 值. 语法:ord(string) 例子 <?php echo ord("h"); echo ord("h ...
- openpyxl
openpyxl库的使用,这个处理xlsx还是挺有用的 ref:传送门 from openpyxl import Workbook from openpyxl import load_workbook ...