【问题标题】:Namespaces in Php/LaravelPhp/Laravel 中的命名空间
【发布时间】:2019-01-02 00:06:02
【问题描述】:

假设一些控制器是这样的:

<?php

namespace App\Http\Controller

use Illuminate\Http\Request;
use Validator;
use Auth;

class MemberController extends Controller {

//some code

}

ValidatorAuth 属于哪里(所以我可以看到它们的定义),它们到底是什么? 我还有一个问题:here(Laravel 5.6 文档)它说

我们将使用由 照亮\Http\Request 对象。

当我查看here 获取更多信息时,没有validate 方法!

如果有人能帮助我解决这些问题,我将不胜感激。

【问题讨论】:

    标签: laravel namespaces


    【解决方案1】:

    ValidatorAuthIlluminate\Support\Facades 中同名门面的别名。它们是类实例的静态代理。你可以在有关 Facades 的 Laravel 文档中了解它们。

    这些别名在config/app.php'aliases'数组中配置。

    Laravel 5.6 Docs - Facades

    对于$request-&gt;validate(...)

    这是一个。宏允许您向在运行时实现宏功能的类添加功能。

    Illuminate\Foundation\Providers\FoundationServiceProvider@registerRequestValidationIlluminate\Http\Request 上设置此宏以允许validate 方法。

    /**
     * Register the "validate" macro on the request.
     *
     * @return void
     */
    public function registerRequestValidation()
    {
        Request::macro('validate', function (array $rules, ...$params) {
            return validator()->validate($this->all(), $rules, ...$params);
        });
    }
    

    要快速了解 Laravel 中的宏,请查看我的文章:

    asklagbox blog - Using Macros in Laravel

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2015-07-27
      • 2016-11-27
      • 2023-04-09
      • 2013-07-18
      相关资源
      最近更新 更多