ホームページ  >  記事  >  PHPフレームワーク  >  Laravel アプリケーションは、データの取得から始めてユーザーを扱います。

Laravel アプリケーションは、データの取得から始めてユーザーを扱います。

藏色散人
藏色散人転載
2020-10-28 14:56:411965ブラウズ

次のチュートリアルコラムでは、Laravel アプリケーションと、データの取得から始まるユーザーの扱いについて紹介します。 , 困っている友達のお役に立てれば幸いです! はじめに

ルーティングとコントローラーについて話した後は、次はビューについて話さなければなりませんが、ビューの機能はあまりにも退屈で、フロントエンドなので、 js と css をいくつか書きます。 Laravel は

バックエンドに重点を置いています

そのため、バックエンド開発者にバッファリング時間を与えるために、ビューをスキップして、最初にユーザー データの取得と処理について説明します。これは、あらゆるユーザーにとってほぼ必須の機能です。応用。 。

ユーザーデータも

危険です !この記事では危険を回避する方法は教えません。

コード時間

ルーティング計画について話していたとき、ガイダンスとして URL の位置パラメータ バインディングを使用する方法について話しました。データを入力する方法 は、入力される位置パラメータが一般に

人間や動物に無害であるというだけのことです。

それが単一ユーザーのプライベート データである場合、URL とともにインラインで直接送信してはなりません。

laravel

ユーザー入力を

Input

オブジェクトに保存します。論理的には、ユーザー入力はリクエスト項目に属する必要があるため、Request も継承します。入力のメソッドとデータ。 たとえば、次のルート:

Route::post('form', function (Illuminate\Http\Request $request) {
    // $request->method()});
はフォーム アドレスをシミュレートし、post メソッドを通じてデータを送信し、Request メソッドを使用します。利用可能な取得方法を見てみましょう。

まず

$request->all()

について話しましょう。これはすべての入力データを出力します。たとえば、フォームには次のフィールドがあるとします。 HTML コンテンツを見てみましょう。


    {{ csrf_field() }}         

データをデバッグするために、ルートは次のように登録されます:

Route::post('/post-route', function (Request $request) {
    var_dump($request->all());});
何が出力されると思いますか?

/**
* [
* '_token' => 'CSRF token here',
* 'firstName' => 'value',
* 'utm' => 12345
* ]
*/

はい、それは投稿フォームのフィールド firstName、クエリ文字列のクエリ パラメータ utm、および CSRF 保護のための laravel 組み込み関数です。デフォルトのフォーム フィールドは

__token

です。だから気にしないでください。

しかし、コーディングに夢中になっている学生にとっては、耐えられないかもしれません。これは私の分野ではないので、コードでは使用しません。この __トークン は見たくないです。 、この見慣れない変数。はい、リクエスト パラメータで直接フィルタリングすることができます:

Route::post('/post-route', function (Request $request) {
    var_dump($request->except('_token'));});

その中で、excect() メソッドは特定のフィールドをフィルタリングするために使用されるため、使用する必要はありません。これに対応するのは、使用するフィールドを指定する

only()

メソッドです。次のように使用します:

$request->only(['firstName', 'utm']);
いくつかのキーが存在するかどうかを判断することが論理的である場合があります。Laravel では、キーが存在するかどうかを判断する 2 つの方法が提供されます。1 つは has で、もう 1 つは

exists です。

。クラスメイトの中には、has があるのに、なぜ exists が必要なのか疑問に思う人もいるかもしれません。機能が違うからです。 hasこのメソッドは、キーが存在するかどうかだけでなく、キーの値が

empty

(null、空の文字列、false、0 など) であるかどうかも判断します。 、空の配列、空のオブジェクトなど)も false と判定されます。したがって、単純にキーが存在するかどうかを判断するには exists を使用する必要があり、使用する場合はこの 微妙な違い に注意する必要があります。 使用法は非常に簡単で、メソッドを直接呼び出すだけです。

if ($request->has('utm')) {
    // Do some work}
入力値キーが存在しない場合は、そのデフォルト値を設定することもできます。これは

input# です。 ## メソッドの 2 番目のパラメータは次のように呼び出されます。

Route::post('/post-route', function (Request $request) {
    $userName = $request->input('name', 'anonymous');});
ユーザーが名前フィールドを渡さない場合は、代わりに anonymous を使用します。

上記はすべて単純なキーと値のペアです。フォームもあります。受信フィールドは次のような配列である場合があります:


    {{ csrf_field() }}                         
ドット スタイルを使用して配列を取得できますlaravel.メソッドで読み込むのは、laravelが解析時にヘルパークラスArrの一般的なメソッドを使用するためです。たとえば、特定のキーを取得するには:

$employeeZeroFirstName = $request->input('employees.0.firstName');
キー名とレベルを明確に指定します。アスタリスクを使用して、特定のレベルのすべてのキーに一致させることもできます:

$allLastNames = $request->input('employees.*.lastName');
または、特定のキーを指定するだけで、レベルの数に関係なく、それをそのまま返します:

$employeeOne = $request->input('employees.1');
For具体的な使用法については、読者はソース コードまたはドキュメントを確認できます。

Arr

オペレーション クラスの使用法を詳しく見てみましょう。

最後に書いてあります

この記事では、ユーザー入力に最も一般的に使用される方法のいくつかについてほぼ説明しています。ユーザー データを通常に取得する方法についてのみ説明しました , データの有効性を検証する方法については説明しません。フロントエンド検証はほとんど役に立たないため、データベースに書き込まれた最終データは依然としてアプリケーションによってチェックされる必要があります。

それは 検証者 の仕事です。検証者については後続の章で詳しく説明します。

以上がLaravel アプリケーションは、データの取得から始めてユーザーを扱います。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。