>  기사  >  백엔드 개발  >  공유 예시 Laravel은 프런트엔드 Ajax로부터 데이터를 수신합니다.

공유 예시 Laravel은 프런트엔드 Ajax로부터 데이터를 수신합니다.

小云云
小云云원래의
2018-02-06 09:42:472751검색

현재 프로젝트에 대해 메모하고 있습니다. 기술 스택은 vue.js + laravel + mongodb입니다. 우선 어젯밤 프로젝트가 끝난 후 요약을 작성하겠습니다. 전체 프로젝트에 사용된 기술들과 제가 겪은 함정들, 오늘은 프론트엔드에서 백엔드로 데이터를 전송하고 라라벨이 이를 수신하는 예를 기록하겠습니다.

프론트엔드 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이 이 두 값을 어떻게 받는지 살펴보겠습니다.

다음 내용으로 앱 폴더 아래에 GUser.php 모델 파일을 만듭니다.


<?php
namespace App;
use Mongodb;
use DB;
 
class GUser extends Mongodb {
  public static function login($email) {
 
    $mongo = DB::connection(&#39;mongodb&#39;);
    $res = $mongo->collection(&#39;user&#39;)->where(&#39;email&#39;,$email)->first();
    return $res;
 
  }
}

그런 다음 app/Http/Controllers php 파일 아래에 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(&#39;email&#39;);
    $pass = $request->input(&#39;pass&#39;);
    $res = GUser::login($email);
    return $res;
  }
}

물론 여기서는 pass 값을 사용하지 않으며, 여기서는 로그인 인증 로직을 생략했습니다.

그런 다음 라우팅 파일 web.php에서 구성합니다.


Route::any(‘/login&#39;,&#39;GUserController@login&#39;);

관련 권장 사항:

PHP에서 AJAX로 전송되는 데이터 유형은 JSON이므로 약간 혼란스럽습니다

위 내용은 공유 예시 Laravel은 프런트엔드 Ajax로부터 데이터를 수신합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.