@demidborodin
FrontEnd Developer

Angular + Laravel, как получить id из строки браузера?

Пишу небольшое приложение Laravel + Angular.

Страницами приложения занимается Angular, Laravel предоставляет "API"

Есть контроллер выводящий запись из базы данных по id

<?php

class ShowOneWorkpeopleController extends BaseController {
    public function showOneWorkpeople($id) {
        $id = (int)$id;

        $workpeople = Workpeoples::showOneWorkpeople($id)->toJson();

        return $workpeople;
    }
}


Контроллеру присвоен Route который принимает id записи

Route::get('api/ShowWorkpeople/{id}', 'ShowOneWorkpeopleController@showOneWorkpeople');


А теперь собственно к Anagular.
Есть контроллер

crmApp.controller('CrmWorkPeopleShowController', ['$scope', function($scope,$http){
    $scope.watispage = 'Сотрудник';

    $http.get('api/ShowWorkpeople/???').then(
        function(result){
            $scope.workpeople = result.data;
        }
    )
}]);


UPD1 забыл упомянуть про пути Angular

crmApp.config(['$routeProvider', '$locationProvider',
    function ($routeProvider, $locationProvider) {
        $locationProvider.html5Mode(true);

        $routeProvider
            .when('/', {
                controller: 'CrmIndexController',
                templateUrl: 'templates/crmIndex.html'
            })
            .when('/workpeople', {
                controller: 'CrmWorkPeopleIndexController',
                templateUrl: 'templates/workpeopleIndex.tpl.html'
            })
            .when('/workpeople/show/:id', {
                controller: 'CrmWorkPeopleShowController',
                templateUrl: './templates/workpeopleShow.html'
            })
    }]);


Так вот, вопрос, что нужно поставить вместо "???", что бы туда попадал id из строки браузера?
ID должен выхватываться из последнего Route. Мне нужна на выходе только одна цифра, а не весь путь.
При помощи $location, получаю целиком весь путь, есть какое-то более элегантное решение чем перебирать строку и забирать последнее значение после "/"?
  • Вопрос задан
  • 2730 просмотров
Решения вопроса 1
Terminaft
@Terminaft
ngRoute используете?

crmApp.controller('CrmWorkPeopleShowController', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams){
    $scope.watispage = 'Сотрудник';

    $http.get('api/ShowWorkpeople/' + $routeParams.id).then(
        function(result){
            $scope.workpeople = result.data;
        }
    )
}]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы