Illuminate

lumen中间件 Middleware

霸气de小男生 提交于 2020-04-17 21:17:16
app/http 下新建 TestMiddleware.php <?php namespace App\Http\Middleware; use Closure; class TestMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $params = $request->all(); if(empty($params['id'])){ $response = ['code'=>400,'msg'=>'参数错误','data'=>[]]; return response()->json($response); } return $next($request); } } bootstrap/app.php里面启用 $app->routeMiddleware([ //'auth' => App\Http\Middleware\Authenticate::class, 'test'=>App\Http\Middleware\TestMiddleware::class ]);

Laravel之Contracts和Facades详解

不问归期 提交于 2020-04-16 13:01:35
【推荐阅读】微服务还能火多久?>>> Contracts Contracts其实就是倡导面向接口编程,来达到解耦的目的。而这些通用的接口已经由Laravel为你设计好了。就是这些Contracts. 那么Laravel如何知道我们需要使用哪个实现呢? 在Laravel默认的Contracts绑定中,在'Illuminate/Foundation/Application.php'有这样的定义:这就是绑定了默认的接口实现. /** * Register the core class aliases in the container. * * @return void */ public function registerCoreContainerAliases() { $aliases = [ 'app' => ['Illuminate\Foundation\Application', 'Illuminate\Contracts\Container\Container', 'Illuminate\Contracts\Foundation\Application'], 'auth' => 'Illuminate\Auth\AuthManager', 'auth.driver' => ['Illuminate\Auth\Guard', 'Illuminate\Contracts\Auth

laravel表单提交419解决办法

最后都变了- 提交于 2020-03-19 23:02:26
3 月,跳不动了?>>> 第一种 <?php namespace App\Http\Middleware ; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * Indicates whether the XSRF-TOKEN cookie should be set on the response. * * @var bool */ protected $addHttpCookie = true ; /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ '*'////注意这个地方默认是// ]; } 第二种 方法 在form表单里加上这段代码或者 如果是ajax提交记得加上 data: {'_token':'{{csrf_token()}}'} ———————————————— 版权声明:本文为CSDN博主「zz_lkw」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog

Facade在Laravel中的工作机制

房东的猫 提交于 2020-01-07 15:55:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们知道Facade门面模式是一个中介类,对子系统或者类对象进行封装和代理,为子系统的一组接口提供一个统一的高层接口。它对外暴露子系统的功能,但是不暴露子系统对象,用户要使用子系统的某个功能(方法)时,先调用门店,由于门店代理了子系统,所以委托子系统去处理相应的功能请求,从而达到将用户和子系统解耦的目的,用户只需要和门店打交道,不需要知道所有的子系统及其内部构造。 我们接下来通过在Laravel中最常用的DB-Facade,来看看Facade在Laravel中是如何工作的。 1,代码如下 <?php use Exception; use Illuminate\Support\Facades\DB; Class A { function a() { try { DB::beginTransaction(); //do something DB::commit(); } catch (Exception $e) { DB::rollback(); // handle exception } } } 这里,我们看到use了一个DB的Facades,为什么写了DB两个字母,就会自动use DB的Facade呢?这就涉及到 Laravel的自动加载和依赖注入机制,这里略过。 我们来看看这个类文件的代码: 2, DB

Laravel Facades 门面模式的实现

假如想象 提交于 2019-12-06 08:12:04
以下是Laravel官方文档的介绍 Facades 为应用程序的 服务容器 中可用的类提供了一个「静态」接口。Laravel 本身附带许多的 facades,甚至你可能在不知情的状况下已经在使用他们!Laravel 「facades」作为在服务容器内基类的「静态代理」,拥有简洁、易表达的语法优点,同时维持着比传统静态方法更高的可测试性和灵活性。 从介绍中可以看出,Facades 好处就是让代码更加简介,优雅,这也是Laravel追求的特性,如何使用Facades这里就不介绍了,可以参考 Laravel文档(中文) ,本文介绍一下Facades是如何知道和创建你需要的类实例。 以 log Facade 为例,我们看下是如何通过log这个字符串找到 \Illuminate\Log\Writer 这个类的 先看 \Illuminate\Support\Facades\Log 门面 class Log extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'log'; } } 这个类非常简单,只有一个静态方法 getFacadeAccessor(),

RESTFul风格控制器

南笙酒味 提交于 2019-11-30 15:52:38
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class PostController extends Controller { /** * 显示文章列表. * * @return Response */ public function index() { // } /** * 创建新文章表单页面 * * @return Response */ public function create() { // } /** * 将新创建的文章存储到存储器 * * @param Request $request * @return Response */ public function store(Request $request) { // } /** * 显示指定文章 * * @param int $id * @return Response */ public function show($id) { // } /** * 显示编辑指定文章的表单页面 * * @param int $id * @return Response */ public function edit($id) { //

Laravel 中简约而不简单的 Macroable 宏指令

…衆ロ難τιáo~ 提交于 2019-11-30 07:48:38
百度百科的定义: 计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。 我一开始接触宏是在大学上计算机基础课程时,老师讲 office 时说的。那时老师介绍宏操作时没太在意,只记得这一操作很强大,它能使日常工作变得更容易。 今天我们讲讲 Laravel 中的宏操作 首先完整的源码 <?php namespace Illuminate\Support\Traits; use Closure; use ReflectionClass; use ReflectionMethod; use BadMethodCallException; trait Macroable { /** * The registered string macros. * * @var array */ protected static $macros = []; /** * Register a custom macro. * * @param string $name * @param object|callable $macro * * @return void */ public static function macro($name

Macroable 宏指令详解

回眸只為那壹抹淺笑 提交于 2019-11-29 06:13:46
百度百科的定义: 计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。 宏 Traits 完整的源码如下: namespace Illuminate\Support\Traits; use Closure; use ReflectionClass; use ReflectionMethod; use BadMethodCallException; trait Macroable { /** * The registered string macros. * * @var array */ protected static $macros = []; /** * Register a custom macro. * * @param string $name * @param object|callable $macro * * @return void */ public static function macro($name, $macro) { static::$macros[$name] = $macro; } /** * Mix another object into the class. * *