2017-08-12 93 views
1

我將我的吉他課程網站從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的方式工作?

謝謝!

+0

你可以使用我的電子郵件與我聯繫:[email protected]是一個laravel開發商。 –

回答

0

記不清了,但我通過這個鏈接從5.2升級到5.3 https://laravel.com/docs/5.3/upgrade 不要被內容壓倒。只需搜索您從中獲取錯誤的位。例如路線部分。 希望幫助