現在、あるプロジェクトについてメモを取っているところです。vue.js + laravel + mongodb というものです。まず、昨夜のプロジェクトの後で、次のことをまとめておきます。プロジェクト全体で使用されているテクノロジーと私が遭遇した落とし穴、今日はフロントエンドがバックエンドにデータを送信し、laravelがそれを受信する例を記録します。
私はフロントエンドの ajax プラグインに vue-resource を使用しませんでしたが、使用中に落とし穴に遭遇したため、vue-resource よりも使いやすく小さい axios.js を使用しました。
フロントエンド コードを見てみましょう (vue ロジック部分は省略します):
axios.post('index.php/login',{ email:this.email, pass:this.pass }).then(function(res){ console.log(res) }).then(function(){ console.log(321) })
this.email と this.pass は、このメソッドを実行するためにユーザーが入力したフォーム データです (データ形式が正しいことを確認した後)。
Laravel がこれら 2 つの値をどのように受け取るかを見てみましょう:
次の内容を含む GUser.php モデル ファイルを app フォルダーの下に作成します:
<?php namespace App; use Mongodb; use DB; class GUser extends Mongodb { public static function login($email) { $mongo = DB::connection('mongodb'); $res = $mongo->collection('user')->where('email',$email)->first(); return $res; } }
次に、app/Http/Controllers の下に GUserController を作成します。 、内容は次のとおりです:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\GUser; use Illuminate\Http\Request; class GUserController extends Controller{ protected function login(Request $request) { $email = $request->input('email'); $pass = $request->input('pass'); $res = GUser::login($email); return $res; } }
もちろん、ここではパス値は使用されておらず、ログイン検証ロジックもここでは省略しています。
次にルーティング ファイル web.php で設定します:
Route::any(‘/login','GUserController@login');
関連する推奨事項:
PHP で AJAX に送信されるデータ型は JSON ですが、これは少し混乱します
以上がLaravel がフロントエンド Ajax からデータを受け取る共有例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。