2015-02-07 4 views
0

У меня проблема, я не могу понять. Я написал раздел админ-сервера с Laravel и Blade и добавил API-интерфейсы для интерфейса (The Angular App). Я использую угловой генератор yoman, затем я создаю проект переднего плана и перемещаю все папки в «dist» в общую папку Laravel; и index.html в/app/view/и переименуйте его в index.php. Все нагрузки прекрасны, но когда я делаю угловой запрос $ http, заголовок ответа говорит 200 Ok, но данных нет. Что мне не хватает?Laravel API + Yeoman Angular Generator

/* routes.php ------------ ANGULAR.JS API ROUTES --------------- */ 
Route::group(['prefix'=>'client_api'], function() 
{ 
    Route::get('all-from-species', '[email protected]'); 
    Route::get('{animal}', '[email protected]'); 
    Route::get('events', '[email protected]'); 
    Route::post('subscribe', '[email protected]'); 
    Route::get('aboutus', '[email protected]'); 
    Route::get('contactus', '[email protected]'); 
}); 

ClientApiController.php -------------------------------

<?php 
class ClientApiController extends \BaseController { 

    public function AllFromSpecies() 
    { 
     // 
    } 

    public function AnimalData($id) 
    { 
     // 
    } 

    public function AllEvents() 
    { 
     // 
    } 

    public function subscribeToNewsletters() 
    { 
     // 
    } 

    /** 
    * @return Response::json 
    */ 
    public function aboutUs() 
    { 
     $about = AboutUs::find(1); 
     // Return Json for Angular use. 
     return Response::json($about); 
    } 
} 

Угловая JS файл ----------------------------

angular.module('animalShelterApp') 
    .controller('AboutCtrl', function ($scope, $http) { 
     $http.get('/client_api/aboutus') 
      .then(function(response) { 
       $scope.aboutus = response; 
     }); 
    }); 

ответ

0

Я не знаю, является ли это единственной проблемой, но есть наверняка проблема с вашими маршрутами ...

У вас есть этот маршрут Route::get('{animal}', '[email protected]');

Он будет в основном улавливать каждый запрос client_api/anything. Он также будет запущен, когда вы сделаете запрос для client_api/aboutus.

Вы можете изменить это, поместив его в самом конце вашего маршрута группы:

Route::group(['prefix'=>'client_api'], function() 
{ 
    Route::get('all-from-species', '[email protected]'); 
    Route::get('events', '[email protected]'); 
    Route::post('subscribe', '[email protected]'); 
    Route::get('aboutus', '[email protected]'); 
    Route::get('contactus', '[email protected]'); 
    Route::get('{animal}', '[email protected]'); 
}); 

Это означает, что только тогда, когда ни один из матча выше маршрутов, {animal} будет работать.

+0

Чувак, ты только что спас мне тонны часов. Не могу поверить, что я этого не видел. Это сработало. Большое спасибо. – dnavas77

Смежные вопросы