最近在做一個筆記的項目,技術棧如下:vue.js + laravel + mongodb首先不得不感歎vue的神奇,項目昨晚之後我會對整個項目中用到的技術和踩過的坑進行一個總結,今天先記錄一個前端傳送資料給後端,laravel接收的例子。
前端ajax外掛程式我沒有使用vue-resource,說實話,用他遇到了坑,所以使用了axios.js,很好用,而且比vue-resource還小。
來看前端代碼(省略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如何接收這兩個值:
我們在app檔案夾下建立一個GUser.php的Model檔案,內容如下:
<?phpnamespace 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檔案,內容如下:
<?phpnamespace 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; }}
當然啦,這裡沒有用到pass的值,我在這裡省略了登入驗證的邏輯。
然後在路由檔案web.php裡配置:
Route::any(‘/login','GUserController@login');