2016-05-15 8 views
0

laravelコントローラには2つのリクエストクラスが付属しています。彼らは同じですか?Laravelリクエストクラスの明確化

use Illuminate\Http\Request; 

use App\Http\Requests; 

は、それが他の上で1つを選択するには、オプションのですか?

答えて

1
use Illuminate\Http\Request; 

この1つは、それが要求に関連するすべてのメソッドとプロパティを持つクラスvendor/laravel/framework/src/Illuminate/Http/Request.phpにあるファイルだが、それはSymfonyRequestを拡張します。

class Request extends SymfonyRequest implements Arrayable, ArrayAccess 
{ 
    // ... 
} 

use App\Http\Requests; 

この1自体は、それが要求する名前空間へのスタブのようなものだ、ただ名前空間です。私はそれを使用しません(私はすべての要求のためにラインを使用します)。

それがこの方法で使用することができる。

public function save(Requests\FormRequest $request) 
0

Laravel 5は、(私は願っています:P)あなただけの上部に使用することができます。

use Request; 
1

App\Http\Requests\RequestIlluminate\Foundation\Http\FormRequestとのIoCコンテナの外に解決されたとき、自分自身を検証しようとしている拡張するすべてのクラスを拡張します。

一方で、Illuminate\Http\Requestは、SymfonyRequestから直接拡張された簡単なリクエストです。リクエストパラメータまたはユーザを現在のリクエストから抽出するだけでよい場合は、コントローラメソッドに挿入すると便利です。

0

私は使用を照らし\のHttp \要求についてはあまりわかりません。 しかし、アプリの\のHttp \要求するために使用されるクラスです:

  1. は、ユーザーの入力データを取得します。

ユーザーがフォームを満たしている場合、我々は、このクラスの助けを借りてデータを取得することができます。

2.ユーザー入力の検証。

コントローラで検証を行うことはできますが、それは良い方法ではありません。 私たちは別のリクエストクラスを使用する必要があります: php artisan make:request request-class-name。 これは、App \ Http \ Requests \に指定された名前、つまりrequest-class-nameを持つファイルを作成します。 このクラスでは、検証と承認を行うことができます。 承認について知りたい場合は、https://laravel.com/docs/5.4/authorizationをご覧ください。