2015-07-10 58 views
3

我已經建立了一個自定義的用戶權限系統到我的老闆公司應用程序,其中包括一個網絡攝像頭時鐘爲員工以及頁面運行報告從數據庫和許多其他公司相關的應用程序和頁面。自動檢測PHP Laravel應用程序中的所有路由?

該應用程序是用PHP和Laravel構建的。

在我的Laravel路由文件中,我設置了一些要求Admin用戶身份驗證和其他人只需要和登錄用戶的部分。

既然我們正在擴展應用程序,並且我已經構建了一個權限系統,該系統將允許在每頁和每個用戶的基礎上設置頁面訪問權限。我需要取消我的路由身份驗證要求,而是使用每個用戶的新權限設置爲每個頁面設置權限。

所以我的問題是,我該如何去自動檢測應用程序中的每個page.route,以便在我的權限頁面上可以顯示每個應用程序頁面的條目?

在下圖中,每個頁面都手動添加到數據庫表中。我現在需要改爲自動檢測應用程序中的所有路線。

enter image description here

+0

我可能太很快公佈這個getRoutes()方法

代碼。現在我看到有一個'getRoutes()'方法可用,我需要研究一下 – JasonDavis

回答

2

我發佈了這個問題太早了。我現在看到有來自答https://stackoverflow.com/a/23673282/143030

Route::get('routes', function() { 
$routeCollection = Route::getRoutes(); 

echo "<table style='width:100%'>"; 
    echo "<tr>"; 
     echo "<td width='10%'><h4>HTTP Method</h4></td>"; 
     echo "<td width='10%'><h4>Route</h4></td>"; 
     echo "<td width='80%'><h4>Corresponding Action</h4></td>"; 
    echo "</tr>"; 
    foreach ($routeCollection as $value) { 
     echo "<tr>"; 
      echo "<td>" . $value->getMethods()[0] . "</td>"; 
      echo "<td>" . $value->getPath() . "</td>"; 
      echo "<td>" . $value->getActionName() . "</td>"; 
     echo "</tr>"; 
    } 
echo "</table>"; 
});