laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)

一、总结

一句话总结:

依赖注入:通过依赖注入的方式来获取当前 HTTP 请求的实例:public function store(Request $request)

要通过依赖注入的方式来获取当前 HTTP 请求的实例,你应该在控制器方法中使用 Illuminate\Http\Request 类型提示。当前的请求实例将通过 服务容器 自动注入:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
/**
* 储存一个新用户。
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$name = $request->input('name'); //
}
}

1、如果控制器方法也有输入数据是从路由参数中传入,如何获取当前 HTTP 请求的实例?

只需将路由参数置于其他依赖之后(比如这里的$id):public function update(Request $request, $id)

|||-begin

Route::put('user/{id}', 'UserController@update');

|||-end

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
/**
* 更新指定的用户。
*
* @param Request $request
* @param string $id
* @return Response
*/
public function update(Request $request, $id)
{
//
}
}

2、请求中获取地址的常用方法及注意?

输出当前url地址(包含查询字符串):echo $request->fullUrl();
获取URL的路由:echo $request->path();
获取URl地址(返回不带有查询字符串的 URL):echo $request->url();
判断路由是否是request:var_dump($request->is('abc'));
// 输出当前url地址

    echo $request->fullUrl();
http://www.yzmedu2.com/request?name=100 // 获取URL的路由 echo $request->path();
request // 获取URl地址初参数 echo $request->url();
http://www.yzmedu2.com/request
// 判断路由是否是request
返回值 true|false var_dump($request->is('abc'));

3、判断是get请求还是post请求实例(比如一个方法即可接受get请求又可接收post请求)?

if ($request->isMethod('GET'))
public function add(Request $request){

    // 判断当前是get请求

    if ($request->isMethod('GET')) {
// 加载添加页面
return view('add');
}else{
// 数据库的入库操作
echo "插入数据库";
} }

4、如何获取和判断当前的请求类型?

获取请求类型:echo $request->method();
判断当前的请求是不是get请求:var_dump($request->isMethod('GET'));
// 判断当前的请求类型

    echo $request->method();

// 判断当前的请求是不是get请求
返回值 true|false var_dump($request->isMethod('GET'));

5、获取所有的请求数据,比如get、post、put等等?

$_GET和$_POST中无法获取put类型的数据
all方法:$data=$request->all();

6、获取特定字段的请求数据,比如请求数据中的name字段?

input方法:echo $request->input('name');

7、请求中判断字段是否存在?

has方法:var_dump($request->has('username'));

8、请求中获取字段数据一些需要注意的?

设置默认值:input+键值对:echo $request->input('yao','强哥');
获取部分数据:only:$data1=$request->only(['name','pass']);
除了一些数据以外:except:$data1=$request->except(['_token','name']);
// 设置默认值
echo $request->input('yao','强哥'); // 获取部分数据 $data1=$request->only('name','pass');
$data1=$request->only(['name','pass']); // 除了一些数据以外 $data1=$request->except('_token','name');
$data1=$request->except(['_token','name']);

二、内容在总结中

 

laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)的更多相关文章

  1. laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...

  2. laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)

    laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...

  3. laravel基础课程---10、数据库基本操作(如何使用数据库)

    laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...

  4. laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)

    laravel基础课程---7.文件处理.闪存.cookie(cookie原理和使用场景) 一.总结 一句话总结: 页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存 ...

  5. laravel基础课程---3、路由(Laravel中的常见路由有哪几种)

    laravel基础课程---3.路由(Laravel中的常见路由有哪几种) 一.总结 一句话总结: 6种:post,get,put,patch,delete,options Route::get($u ...

  6. laravel基础课程---2、Laravel配置文件、路由及php artisan(php artisan是什么)

    laravel基础课程---2.Laravel配置文件.路由及php artisan(php artisan是什么) 一.总结 一句话总结: PHP工具匠:php artisan,其实本身就是一些PH ...

  7. laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

    laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...

  8. laravel基础课程---16、数据迁移(数据库迁移是什么)

    laravel基础课程---16.数据迁移(数据库迁移是什么) 一.总结 一句话总结: 是什么:数据库迁移就像是[数据库的版本控制],可以让你的团队轻松修改并共享应用程序的数据库结构. 使用场景:解决 ...

  9. laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

    laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...

随机推荐

  1. MongoDB基本文件操作

    MongoDB中主要的文件操作有put.get.list.search几种.能够非常方便地进行文件存储于查找,下面是一个简单的演示样例. 1.利用dd命令生成要求大小随机文件  2.使用put命令将生 ...

  2. UDP最大传输字节

    每个包最大可携带字节长度:65507个byte. 封装成 IP 后,大小超出 PMTU 的分组将可能被 fragmented. 如果设置了 Don't Frag,超出 PMTU 的分组将不能被发送. ...

  3. SAS连接MYSQL的步骤及引用数据表

    1.建立逻辑库 libname  dz  ’物理路径'; 2.逻辑库做为桥梁连接SAS与MYSQL libname dz MYSQL USER=*****  PASSWORD=****  DATABA ...

  4. c#中使用ABCpdf处理PDF,so easy

    QQ交流群:276874828  (ABCpdf ) 这几天项目中需要将页面导成PDF,刚开始使用iTextSharp,觉得在分页处理上比较复杂,后来无意中看到了ABCpdf,使用非常简单,并将一些常 ...

  5. ReactNative Navigator

    https://facebook.github.io/react-native/docs/navigator.html Navigator实现了页面之间的跳转. Demo描述:打开即进入“课程”页面, ...

  6. ssh port forwarding

    SSH端口转发,总是忘记,今天记录下.端口转发有两种,一个是local一个是remote(可能还有一种dynamic,还没有研究) 贴个链接 https://www.ssh.com/ssh/tunne ...

  7. 设置mysql隔离级别

    1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set sess ...

  8. [转]XMPP基本概念--节(stanza)

    本文介绍在XMPP通信中最核心的三个XML节(stanza).这些节(stanza)有自己的作用和目标,通过组织不同的节(stanza),就能达到我们各种各样的通信目的. 首先我们来看一段XMPP流. ...

  9. erlang的undefined macro 'MODULE',头一行编译通不过的问题

    前言:对于erlang的编译有很多方式,rebar,makefile文件 还是对于单个文件的erlc编译等,但不管何种方式,一个模块的第一行就编译不过去,实在让人纠结... 1)问题上述: 在技术交流 ...

  10. 理解cas

    前言 CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性. CAS ...