在Laravel 5中,似乎比使用Request Facade更好地为Request对象注入(inject)方法。

<?php namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index(Request $request)
    {
        $email = $request->input('email');

        // OR

        $email = $request->get('email');
    }
}

我有几个问题:

使用Illuminate\Http\Request比使用Illuminate\Support\Facades\Request更好

我不知道$ request-> get()如何解析,因为get()中没有函数名Illuminate\Http\Request。 input()和get()做同样的事情。

方法注入(inject)比使用Facades更好吗?

最佳答案

在 Controller 方法中,请求注入(inject)功能始终是首选,因为在某些方法中,它可以帮助您使用表单请求(它们正在扩展默认的Request类)验证,这将在进入实际的 Controller 方法之前自动验证您的请求。这是一个了不起的功能,有助于创建简洁,简洁的 Controller 代码。

使用默认的请求注入(inject)使您 Controller 的方法相似且易于维护。

同样,对象注入(inject)总是比Facades更好,因为此类方法和对象更易于测试。
get()input()是不同类的方法。第一个是Symfony HttpFoundation Request的方法,input()是Laravel Request类的方法,该方法扩展了Symfony Request类。

关于php - Laravel请求input()或get(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30186169/

10-11 22:03
查看更多