2015-05-21 48 views
2

我對Laravel非常陌生。但是現在我已經開始了我的第一個Laravel項目。現在我需要爲移動設備提供REST API。我遵循laravel網站上的REST資源控制器文檔。但是當我打電話給我的休息API時,它不會返回任何值。請問我的代碼是否正確?如何在laravel中完成rest api?我的代碼如下。我正在使用laravel 5。如何創建完整的Laravel rest api,並與Laravel REST控制器混淆

「我的REST API服務器代碼」

「路線」

Route::resource('/users','user_accessController'); 

「控制器」

namespace App\Http\Controllers; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use Response; 
use Illuminate\Http\Request; 

use App\User; 

class user_accessController extends Controller { 

    public function index() 
    { 
     return Response::json(array('name'=>'wai yan')); 
    } 
} 

「客戶端代碼」 「使用curl」

$ch = curl_init(); 
    curl_setopt($ch,CURLOPT_URL, 'http://laravel.bbc:8080/users'); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_POST, 0); 
    curl_exec($ch); 

    $res = curl_close($ch); 

請幫我看看有什麼錯我的代碼?它沒有返回任何值。

+0

嘗試使用完整的namespae的路線路線::資源( '/用戶', '應用程序\ HTTP \控制器\ user_accessController'); – oBo

+2

順便說一句:你應該遵循命名約定。看看Laravel如何命名課程。沒有一個班級和你的名字一樣。 –

+0

我已遵循約定。同樣的結果。 –

回答

1

首先,您需要了解Laravel的命名約定。

StudlyCase爲您的控制器。

使用工匠命令生成資源控制器

php artisan make:controller UserAccessController 

您的路線:

Route::resource('/users','UserAccessController'); 

「控制器」 - 文件名:UserAccessController.php

namespace App\Http\Controllers; 

use Response; 
//use App\Http\Controllers\Controller; no need for this both files are in same namespace 

use App\User; 

class UserAccessController extends Controller { 

    /** 
    * Display a listing of the resource. 
    * 
    * @return Response 
    */ 
    public function index() 
    { 
     return response()->json(['name' => 'wai yan']); 
    } 


} 

正在使用Laravel 5相同的代碼上面這是我使用curl命令時的輸出:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://laravel.dev/users

enter image description here

+0

它是不工作。我已經嘗試過了。 –

+0

我在php中添加了這一行。 curl_setopt($ ch,CURLOPT_HTTPHEADER,array('Accept:application/json','Content-Type:application/json')); 。但它不起作用。 –

+0

你是從同一個laravel項目運行這段代碼嗎? – Digitlimit