我將我的吉他課程網站從5.2升級到5.3。我以前的開發人員有一份全職工作,所以現在我的網站所有者和開發者......我比開發一個更好的吉他手...Laravel 5.2到5.3 - 將routes.php轉換爲web和api路由文件?
我的網站添加吉他課內容的後端。在routes.php文件文件,除其他事項外,有幾行:
function RegisterResourceRoute($route, $name) {
Route::get($route, 'Api\\'.$name.'[email protected]');
Route::get($route.'/{id}', 'Api\\'.$name.'[email protected]');
Route::post($route, 'Api\\'.$name.'[email protected]');
Route::put($route.'/{id}', 'Api\\'.$name.'[email protected]');
Route::delete($route.'/{id}', 'Api\\'.$name.'[email protected]');
}
// Api
Route::group(['middleware' => ['api', 'auth', 'admin']], function() {
Route::group(array('prefix' => 'api'), function() {
RegisterResourceRoute('file', 'File');
RegisterResourceRoute('photo', 'Photo');
RegisterResourceRoute('category', 'Category');
RegisterResourceRoute('tag', 'Tag');
RegisterResourceRoute('lesson', 'Lesson');
RegisterResourceRoute('exercise', 'Exercise');
RegisterResourceRoute('user', 'User');
});
Route::post('/api/email', 'Api\\[email protected]');
});
然後我在視圖中使用的角度相關的JS看到,本作的練習資源:
// Exercise
.when('/exercise', {
templateUrl: 'views/dashboard/exercise/view-all.html',
controller: 'ExerciseViewAllController'
})
.when('/exercise/create/:lessonId?', {
templateUrl: 'views/dashboard/exercise/create.html',
controller: 'ExerciseCreateController'
})
.when('/exercise/view/:id', {
templateUrl: 'views/dashboard/exercise/view.html',
controller: 'ExerciseViewController'
})
.when('/exercise/edit/:id', {
templateUrl: 'views/dashboard/exercise/edit.html',
controller: 'ExerciseEditController'
})
.when('/exercise/edit/:id/details', {
templateUrl: 'views/dashboard/exercise/edit-details.html',
controller: 'ExerciseDetailsController'
})
.when('/exercise/edit/:id/photos', {
templateUrl: 'views/dashboard/exercise/edit-photos.html',
controller: 'ExercisePhotosController'
})
.when('/exercise/delete/:id', {
templateUrl: 'views/dashboard/exercise/delete.html',
controller: 'ExerciseDeleteController'
})
的ViewAllController,舉例來說,看起來是這樣的:
angular.module('dashboard')
.controller('ExerciseViewAllController', ['$scope', '$http', function ($scope, $http) {
$scope.exercises = [];
$scope.refresh = function() {
$scope.exercises = [];
load();
};
var load = function() {
$scope.busy = true;
$http.get('/api/exercise').then(function (response) {
$scope.busy = false;
$scope.exercises = response.data;
}, function (response) {
$scope.busy = false;
});
};
load();
}]);
我試圖找出如何把手5.3這樣的路由。在我的後臺儀表板中,當我嘗試查看練習列表時,例如,我收到了api/exercise的404錯誤。
因此,我創建web.php這種管理下的路線:
Route::resource('api/exercise', 'Api\ExerciseController');
而且在api.php
Route::group(['prefix' => 'api'], function() { Route::resource('exercise', 'Api\ExerciseController'); });
現在的作品,但我不得不改變什麼以前是GETALL( )函數在運行控制器中進行索引(),否則在laravel正在尋找默認索引方法後出現錯誤。
我寧願得到它的工作使用默認路由的名字,也是我不知道如果我說什麼web.php和api.php真的是正確的做法。我看到的東西似乎工作,但我擔心我沒有看到全貌......
有人能解釋我會做什麼讓這些路線在真正laravel 5.3的方式工作?
謝謝!
你可以使用我的電子郵件與我聯繫:[email protected]是一個laravel開發商。 –