在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/