【问题标题】:Laravel Illuminate\Support\Facades\InputLaravel Illuminate\Support\Facades\Input
【发布时间】:2015-01-14 08:47:14
【问题描述】:

我是 Laravel 的新手,正在查看一些示例代码。

在控制器中我看到了这个:

<?php

use Illuminate\Support\Facades\Input;

class RegistrationController extends \BaseController {

public function __construct()
{
    $this->beforeFilter('guest');
}

为什么我必须使用“use Illuminate\Support\Facades\Input;”?

我不能只使用例如 Input::get();就像我在路由文件中所做的那样?

【问题讨论】:

  • 你知道 PHP 的命名空间吗?
  • 是的,但为什么我的路由文件中不需要它?

标签: php laravel namespaces laravel-facade


【解决方案1】:
<?php

use Illuminate\Support\Facades\Input;

class RegistrationController extends \BaseController {

public function __construct()
{
    $this->beforeFilter('guest');
}

此控制器位于全局命名空间中。所以你不需要使用use Illuminate\Support\Facades\Input;你可以直接调用Input::get('foo');

<?php namespace Foo; //<---- check the namespace

    use Input;

    class RegistrationController extends \BaseController {

    public function __construct()
    {
        $this->beforeFilter('guest');
    }

您可以在此处拨打电话时写use Input\Input::get('foo')

【讨论】:

    【解决方案2】:

    您不必在此处使用导入命名空间(无需添加use Illuminate\Support\Facades\Input;)。

    只要您的控制器位于全局命名空间中,您就可以使用 Input::get('something') 访问 Input 外观。否则需要使用\Input::get('something') 或在&lt;?php 后添加use Input

    【讨论】:

    • 所以只要我扩展基本控制器就不需要它了吗?我在这里找到了代码:github.com/BnSmth/email-verification/blob/master/app/…
    • @user2722667 这里不用用了。请记住,并非所有代码或库都写得很好。任何人都可以在 github 上发布任何内容。
    猜你喜欢
    • 2020-01-24
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2019-11-29
    • 2019-06-05
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多