2015-11-26 70 views
1

我一直在使用laravel 5進行包開發。所以我創建了一個包含composer的包作爲'lakshmajim/testview'。laravel命名爲路由包

我已通過創建新的laravel項目克隆那個包進行測試

composer require lakshmajim/testview dev-master 

然後更新composer.json主文件中像這樣

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "App\\": "app/", 
     "lakshmajim\\testview\\": "vendor/lakshmajim/testview/src" 
    } 
}, 

然後我做了

composer dumpautoload 
composer update 
php artisan vendor:publish 

我的路線(PHP工匠路線:名單)

+--------+----------+-----------------+-------------------------+------------+ 
|Domain|Method | URI    |Name| Action          | Middleware | 
    +--------+----------+-----------------+------+----------+------------+ 
|  | GET|HEAD|/   |  | Closure      
|  | GET|HEAD| accessurl/{str}|  | lakshmajim\testview\[email protected] | |  
|  | GET|HEAD| hi    |  | App\Http\Controllers\[email protected]   |   | 

當我試圖訪問 http://localhost:8000/accessurl/any%20parameter%20here 它的工作原理罰款並顯示結果。

我控制器文件

use Redirect; 

class Controller extends BaseController 
{ 
     public function e() 
     { 
      $url='accessurl/strtestpackage'; 
      return Redirect::route($url); 
     } 
} 

問題是,當我試圖訪問包路由表單控制器它顯示了以下錯誤

`**InvalidArgumentException in UrlGenerator.php line 296: Route [accessurl/str] not defined**`. 

問題我怎樣才能能夠訪問供應商目錄表單控制器中的命名路由? (如何使用供應商/ lakshmajim/testview/src目錄/ routes.php文件文件從應用程序/ HTTP /控制器/ Controller.php這樣?)

感謝。

回答

0

route()方法將路由名稱作爲參數。正如我所看到的,你的軟件包沒有路由名稱。 你可以使用redirect()

return redirect('/url/here'); 

而且在你routes.php,您可以定義使用as關鍵字的路徑名。檢查文檔here