Laravel API + Yeoman Angular Generator

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

/* routes.php ------------ ANGULAR.JS API ROUTES --------------- */
Route::group(['prefix'=>'client_api'], function()
{
Route::get('all-from-species', 'ClientApiController@AllFromSpecies');
Route::get('{animal}', 'ClientApiController@AnimalData');
Route::get('events', 'ClientApiController@AllEvents');
Route::post('subscribe', 'ClientApiController@subscribeToNewsletters');
Route::get('aboutus', 'ClientApiController@aboutUs');
Route::get('contactus', 'ClientApiController@contactUs');
});

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}', 'ClientApiController@AnimalData');

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

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

Route::group(['prefix'=>'client_api'], function()
{
Route::get('all-from-species', 'ClientApiController@AllFromSpecies');
Route::get('events', 'ClientApiController@AllEvents');
Route::post('subscribe', 'ClientApiController@subscribeToNewsletters');
Route::get('aboutus', 'ClientApiController@aboutUs');
Route::get('contactus', 'ClientApiController@contactUs');
Route::get('{animal}', 'ClientApiController@AnimalData');
});

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]