我正在将我的吉他课程网站从5.2升级到5.3。我以前的开发人员有一份全职工作,所以现在我是网站所有者和开发人员...我是一个比开发人员更好的吉他手......
我的网站有一个后端添加吉他课程内容。除其他外,routes.php文件包含以下行:
function RegisterResourceRoute($route, $name) {
Route::get($route, 'Api\\'.$name.'Controller@getAll');
Route::get($route.'/{id}', 'Api\\'.$name.'Controller@get');
Route::post($route, 'Api\\'.$name.'Controller@post');
Route::put($route.'/{id}', 'Api\\'.$name.'Controller@put');
Route::delete($route.'/{id}', 'Api\\'.$name.'Controller@delete');
}
// 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\\EmailController@send');
});
然后我在视图中使用的角度相关的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()函数更改为index(),否则由于laravel正在寻找默认索引方法而出现错误。
我宁愿让它使用默认路由名称,而且我也不知道我添加到web.php和api.php的内容是否真的是正确的方法。我觉得事情似乎有效,但我担心我看不到全局...
有人可以解释一下如何让这些路线以真正的laravel 5.3方式工作吗?
谢谢!
答案 0 :(得分:0)
不记得确切但我通过此链接从https://laravel.com/docs/5.3/upgrade升级到5.2 不要被内容所淹没。只搜索你收到错误的位。例如路线部分。 希望有所帮助