laravel学习笔记(5)— 表单

一、Controller 介绍

1.Controller之Request

● laravel中的请求使用的是sympony/http-foundation组件

获取请求中的值

判断请求类型

<?php
	namespace App\Http\Controllers;
	use Illuminate\Http\Request;
	class StudentController extends Controller{
		public function request1(Request $request) {
			//echo $request->input('name');输出name的值
			//$request->input 接受指定参数(name) 如果不存在返回null
			// echo $request->input('name', 'null');
		// $request->has 判断指定参数是否存在 存在返回true 不存在返回false
			// if($request->has('name')) {
			// 	echo $request->input('name');
			// }else{
			// 	echo 'name参数为空';
			// }
		// $request->all 返回所有的参数(array类型)
			// $res = $request->all();
			// dd($res);
		// $request->method 返回访问类型
			// echo $request->method();
		// $request->isMethod 判断是否为指定请求类型(不区分大小写) 是为true 否则为false
			// if($request->isMethod('GET')) {
				// echo 'yes';
			// }else{
				// echo 'no';
			// }
		// $request->ajax 判断是否为ajax请求 是为true 否则为false
			// $res = $request->ajax();
			// var_dump($res);
		// $request->is 判断是否为指定路由
			// $res = $request->is('User/*');
			// var_dump($res);
		// $request->url 获取当前的url
			$res = $request->url();
			echo $res;
		}
	}
?>
2.Controller之Session

● 由于HTTP协定是无状态(Stateless)的,所以session提供一种保存用户数据的方法。

● laravel支持了多种session后驱驱动,并提供清楚、统一的API。也内置支持如Memcached、Redis和数据库的后端驱动。默认使用“file”的Session驱动。

● session的配置文件配置在config/session中。 

session操作的三种方式:

● $request->session()->方法                  HTTP request类的session()方法

● session()->方法                                    session()辅助函数

● Session::方法                                       Session facade,Session::put('key','value);方法需要添加use Illuminate\Support\Facades\Session;

// 以数组的形式存储数据
// Session::put(['name'=>'liuzhe', 'age'=>'21', 'sex'=>'m']);

// 把数据放到Session的数组中
// Session::push('name2', 'aaa');
// Session::push('name2', 'bbb');

// 取出相关session数据并删除
// $res = Session::pull('sex', 'default');

// 取出session中所有数据
// $res = Session::all();

// 判断session中是否存在某个值
// $res = Session::has('age')?'存在':'不存在';

// 删除session中指定的值
// Session::forget('name');

// 清空session
// Session::flush();

// 暂存数据session(访问一次后就自删)
// Session::flash('temp', 'test.');
3.Controller之Response

响应的常见类型:

● 字符串:直接return

● 视图:return view();

● JSON:return response()->json()

● 重定向:return redirect()->with()带数据跳转
        return redirect()->action()->with()带数据跳转至某控制方法
          return redirect()->route(路由别名)->with()带数据跳转至某路由
        return redirect()->back()->with() 带数据跳转至上一个页面

public function response1() {
	$arr = [
		'errCode' => 0,
		'status' => 'success',
		'data' => 'test'
	];
	// 将数组转化为json格式
	// return response()->json($arr);

	// 方法1: redirect('待重定向的url')
	// return redirect('session1');
	
	// 方法2: (跳转前添加一条一次性的session数据)
	// return redirect('session1')->with('msge', '我是一条快闪数据');

	// 方法3:
	// return redirect()->action('StudentController@session1')->with('msge', '我是一条快闪数据');

	// 方法4: (路由别名的方式重定向)
	// return redirect()->route('s');

	// 方法5: (返回上一页重定向)
	return redirect() -> back();
}
4.Controller之Middleware

● 中间件有什么作用?Laravel 中间件提供一个方便的机制来过滤进入应用程序的HTTP请求。

中间件操作:

● 新建中间件:手写,或artisan命令创建

● 注册中间件:在Kernel.php $routeMiddleware属性中加入中间件

● 使用中间件:路由中加入路由组

● 前置和后置操作:将$response=$next($request)置前或置后,$next是下一个操作闭包,$request是请求

Controller之Middleware (中间件)
StudentController.php中的成员方法
public function huodong0() {
	return '这是一个宣传页面';
}

public function huodong1() {
	return '活动开始了';
}

public function huodong2() {
	return '活动结束了';
}
// 中间件 - 编写 [ app/Http/Middleware/hudong.php ]
<?php
	
	namespace App\Http\Middleware;
	use Closure;
	class huodong {
		public function handle($request, Closure $next) {
			if(time() < strtotime('2017-01-05')){
				return redirect('huodong0');
			}
			$next($request);
			// 后置操作
			// echo $next($request);
		}
	}
?>

// 中间件 - 注册 [ app/Http/kernel.php ]
    protected $routeMiddleware = [
        'huodong' => \App\Http\Middleware\huodong::class
    ];

// 中间件 - 使用 [ app/Http/routes.php ]
Route::get('huodong0', 'StudentController@huodong0');
Route::group(['middleware' => 'huodong'], function() {
	Route::get('huodong1', 'StudentController@huodong1');
	Route::get('huodong2', 'StudentController@huodong2');	
});

二、Laravel表单


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值