Существует небольшое приложение на Angular + Laravel.
Есть config приложения 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/:workerId', {
controller: 'CrmWorkPeopleShowController',
templateUrl: './templates/workpeople-show.tpl.html'
})
.when('/workpeople/edit', {
controller: 'CrmWorkPeopleEditController',
templateUrl: './templates/workpeopleEdit.html'
})
.when('/workpeople/delete', {
controller: 'CrmWorkPeopleDeleteController',
templateUrl: './templates/workpeopleDelete.html'
})
.when('/map', {
controller: 'CrmMapController',
templateUrl: './templates/mapIndex.html'
}).otherwise({
redirectTo: '/'
});
}]);
Как видно, в одном из роутов принимается $routeParams
Далее мы передаем его в один из контроллеров, где он используется для составления строки запроса к "API" моего приложения.
crmApp.controller('CrmWorkPeopleShowController', ['$scope', '$http', '$routeParams', function ($scope, $http, $routeParams) {
$scope.watispage = 'Сотрудник';
$scope.workerId = "api/workpeople/id/" + $routeParams.workerId;
$http.get($scope.workerId).then(
function (result) {
$scope.workpeople = result.data;
}
)
}]);
Собственно ID в базе данных имеет тип INT и только INT.
То есть при запросе типа:
/workpeople/show/id/2132132 - роут должен срабатывать и отправлять запрос к нашему ID.
А при запросе (например):
/workpeople/show/id/dsad123 - должен исполнятся роут с редиректом на главную страницу приложения и что самое главное не выполнять сам GET запрос к нашему IP.
Как вы считаете, как лучше реализовать данную функцию?