一、Controller

1、Request

1.1、取值:input

//    1、取值
echo $request->input('name');
// 2、取不到值时打印默认值
echo $request->input('name', '默认值');

1.2、判断是否有该参数:has

//    3、判断是否有该参数
if ($request->has('name')) {
echo $request->input('name');
} else {
echo '不存在该参数';
}

1.3、获取所有的参数:all

//    4、获取所有的参数
$res = $request->all();

1.4、判断请求类型

1.4.1、method

echo $request->method();

1.4.2、isMethod

if ($request->isMethod('GET')) {
echo 'YES';
} else {
echo 'NO';
}

1.4.3、ajax

$res = $request->ajax();

1.4.4、is:判断请求路径是否符合要求

$res = $request->is('student/*');

1.4.5、url:获取请求的url

$res = $request->url();

2、Session

2.1、Session的配置文件:

2.2、添加web中间件,开启session_start:

在路由中添加中间件:

Route::group(['middleware' => ['web']], function(){
Route::get('session1', ['uses' => 'StudentController@session1']);
Route::get('session2', ['uses' => 'StudentController@session2']);
});

2.3、设置及获取session:

1)通过request对象:

    public function session1(Request $request)
{
$request->session()->put('key1', 'value1');
} public function session2(Request $request)
{
echo $request->session()->get('key1');
}

2)通过session()方法:

    public function session1(Request $request)
{
session()->put('key2', 'value2');
} public function session2(Request $request)
{
echo session()->get('key2');
}

3)通过Session类:

    public function session1(Request $request)
{
Session::put('key3', 'value3');
} public function session2(Request $request)
{
echo Session::get('key3', 'default'); // 没有key3取值为default
}

4)session中存入数组:push

    public function session1(Request $request)
{
Session::push('student', 'sean');
Session::push('student', 'lily');
} public function session2(Request $request)
{
$student = Session::get('student');
}

5)取出session中的数据后删除该session数据:pull

    public function session2(Request $request)
{
$student = Session::pull('student', 'default');
var_dump($student);
}

6)取出session中所有的数据:all

$res = Session::all();

7)判读session有没有某个值:has

$bool = Session::has('key1');

8)删除某个session值:forget

Session::forget('key1');

9)清空所有的session值:flush

Session::flush();

10)暂存session数据,只有第一次访问时有数据,第二次访问就没有该session值了:flash

    public function session1(Request $request)
{
Session::flash('key-flash', 'value-flash');
} public function session2(Request $request)
{
echo Session::get('key-flash');
}

3、Respose

3.1、响应json:response()->json($data)

    public function response()
{
$data = [
'errCode' => ,
'errMsg' => 'success',
'data' => 'sean'
];
return response()->json($data);
}

3.2、重定向:

3.2.1、redirect()

    public function response()
{
return redirect('session1');
}

备注:重定向可以带信息,使用with,重定向后的方法使用session获取

    public function session1(Request $request)
{
return Session::get('message', 'not message');
} public function response()
{
return redirect('session1')->with('message', 'hello world');
}

3.2.2、使用action方法跳转到对应的方法中

    public function response()
{
return redirect()->action('StudentController@session1')->with('message', 'hello world');
}

3.2.3、通过路由别名跳转:route

    public function response()
{
return redirect()->route('sess1')->with('message', 'hello world');
}

3.2.4、返回上一个页面:back

    public function response()
{
return redirect()->back();
}

4、中间件:Middleware

4.1、定义

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

4.2、准备两个方法:

4.3、创建中间件:

<?php
namespace App\Http\Middleware; use Closure; class Activity
{
public function handle($request, Closure $next)
{
if (time() < strtotime('2018-10-27')) {
return redirect('activity0');
}
return $next($request);
}
}

4.4、注册中间件:

'activity' => \App\Http\Middleware\Activity::class,

4.5、在路由中使用中间件:

Route::group(['middleware' => ['activity']], function(){
Route::get('activity1', ['as' => 'activity1', 'uses' => 'StudentController@activity1']);
});

二、静态资源管理及模板布局

1、asset:引入js、css文件,默认以public为根目录,如下为引入public目录下的css和js文件:

<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}">
<script type="text/javascript" src="{{ asset('js/jquery.min.js') }}"></script>

2、分页

控制器使用paginate()获取数据:

$students = Student::paginate();

页面模板使用renderrender()方法输出分页:

{{$students->render()}}

最终页面显示,这里没有添加样式:

3、数据验证

3.1、控制器上对数据进行验证

3.1.1、路由上必须使用web中间件:

Route::group(['middleware' => ['web']], function(){
Route::any('student/create', ['uses' => 'StudentController@create']);
});

3.1.2、控制器是使用validate方法进行验证:

$this->validate($request, [
'student.name' => 'required|min:2|max:20',
'student.age' => 'required|integer'
], [
'required' => ':attribute 为必填项',
'min' => ':attribute 长度不符合要求',
'integer' => ':attribute 必须为整数'
], [
'student.name' => '姓名',
'student.age' => '年龄'
]);

3.1.3、因为控制层使用了create方法,所以model层需要指定允许批量赋值的字段:

3.1.4、view层需要添加csrf_field()及显示错误信息:

common.error.blade.php代码,错误信息存储在$errors中:

@if (count($errors))
@foreach ($errors->all() as $error)
<ul>
<li>{{$error}}</li>
</ul>
@endforeach
@endif

3.1.5、页面显示:

3.1.6、失败跳转时存储已经填写的信息:withInput()、old()

laravel学习笔记2--表单的更多相关文章

  1. Bootstrap学习笔记(二) 表单

    在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文 ...

  2. AngularJS 1.2.x 学习笔记(表单校验篇)

    https://my.oschina.net/cokolin/blog/526911 摘要: 本文首发于 blog.csdn.net/vipshop_ebs/article/details/39472 ...

  3. vue学习笔记(六)表单输入绑定

    前言 在上一章vue学习笔记(四)事件处理器这一篇博客的内容中,我们已经了解vue是如何绑定事件的,而本篇博客主要讲解的是vue中表单输入的绑定,通常我们自己提交信息的时候都是通过表单将信息到服务器的 ...

  4. Symfony2学习笔记之表单

    对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战的任务.Symfony2集成了一个Form组件,让处理表单变的容易起来.在这一节里,我们将从基础开始创建一个复杂的表单,学习表单类库中最 ...

  5. [学习笔记]--Jfinal 表单提交附件

    近期.项目里面用到了Jfinal 里面的上传附件. Jfinal 的Controller 里面提供了一个 getFile系列方法提供文件上传. 我这里呢,是文件上传和表单參数一起提交. 页面类似下图: ...

  6. 20151223jquery学习笔记--Ajax表单提交

    传统的表单提交, 需要多次跳转页面, 极大的消耗资源也缺乏良好的用户体验. 而这款form.js 表单的 Ajax 提交插件将解决这个问题.一. 核心方法官方网站: http://malsup.com ...

  7. angular2 学习笔记 ( Form 表单 )

    refer : https://angular.cn/docs/ts/latest/guide/forms.html https://angular.cn/docs/ts/latest/cookboo ...

  8. [知了堂学习笔记]_Jquery_Validate 表单校验的使用

    一.效果图: 二.JqueryValidate的好处 在做注册.或者类似以上的表单提交的时候,大家是不是都很烦那种,把数据拿到后台去判断, 可能经过了正则表达式之类的复杂判断,然后发现数据错误.接着通 ...

  9. Django学习笔记之表单验证

    表单概述 HTML中的表单 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言.只要把input标签放在form标签中,然后再添加一个 ...

  10. JavaScript入门学习笔记(表单验证)

    表单验证: 在数据被送到服务器之前对HTML表单中的输入数据进行验证,避免服务器频繁验证信息造成用户体验差. (1)表单数据是否为空 (2)输入的信息格式是否正确 (3)输入数据的类型是否正确 必填( ...

随机推荐

  1. HDU 5907 Find Q (水题)

    题意:在他眼前有一个小写字母组成的字符串SSS,他想找出SSS的所有仅包含字母'q'的连续子串. 析:这个题,很容易发现,有 n 个连续个q,就是前 n 项和.注意不要超 int. 代码如下: #pr ...

  2. 阿里DNS 223.5.5.5 223.6.6.6 (转载)

    转自:http://it.oyksoft.com/post/6780/ 阿里DNS:   223.5.5.5       223.6.6.6 为何用它? 一.选择阿里DNS让你购物更爽,如果是淘宝狂人 ...

  3. MongoDB集群跨网络、跨集群同步方案

    MongoDB集群跨网络.跨集群数据同步有以下几个方案,此处只是简单介绍,不过详细描述. 1.MongoDB自带的复制方案 优点:实施简单,不需要额外的技术栈 缺点:网络双向可连通. 2.CDC同步方 ...

  4. Workflow 规则大全 最新版

    ​对于怎么操作Workflow我就不重复说明了 大家可以搜索我的另一条微博.Workflow,作为一款提高效率的软件,我觉得很有必要进行推广,当然我比较需要这里面的很多规则,先为己再为公.首先我只是出 ...

  5. Hdu 5416 CRB and Tree (bfs)

    题目链接: Hdu 5416 CRB and Tree 题目描述: 给一棵树有n个节点,树上的每条边都有一个权值.f(u,v)代表从u到v路径上所有边权的异或值,问满足f(u,v)==m的(u, v) ...

  6. Java 线程 —— Wait (等待)和 Notify(唤醒)

    Wait (等待)和 Notify(唤醒) 这里讲了一个Wait (等待)和 Notfity(唤醒),下面这个实例(工厂,商店,消费者) 额,然后,你就知道了,需要写三个类:工厂类,Shop类,消费者 ...

  7. Spring Cloud是什么?

    [学习笔记] 3)Spring Cloud是什么?马克-to-win@马克java社区:i)Spring Cloud是一个微服务框架,Spring Cloud基于微服务基础框架Netflix进行了up ...

  8. java数据结构和算法04(链表)

    前面我们看了数组,栈和队列,大概就会这些数据结构有了一些基本的认识,首先回顾一下之前的东西: 在数组中,其实是分为有序数组和无序数组,我简单实现了无序数组,为什么呢?因为有序数组的实现就是将无序数组进 ...

  9. 完美单例宏定义(兼容ARC和MRC),项目中可以直接使用

     单例模式: 1.永远只分配一块内存来创建对象 2.提供一个类方法, 返回内部唯一的一个对象(一个实例) 3.最好保证init方法也只初始化一次 写一个宏定义文件,传入宏定义函数名,自动生成符合类名的 ...

  10. Spring data jpa中Query和@Query分别返回map结果集

    引用: http://blog.csdn.net/yingxiake/article/details/51016234 http://blog.csdn.net/yingxiake/article/d ...