2014-07-02 161 views
0

我是laravel的新手,我遇到了路由問題。Laravel路由

我想要做的就是用我的路線,像這樣

域/ {控制器}/{行動}

所以,我可以去家中的測試頁

首頁/測試

該文檔對我來說沒有任何意義,所以如果任何人都可以指出我會朝着正確的方向發展。目前,我正在爲每個頁面硬編碼我的路線。

回答

1

基本上你可以開始於:

Route::get('Domain/{controller}/{action?}', function ($controller, $action = 'index') { 

    $class = $controller.'Controller'; 
    $controller = new $class() 

    return $controller - > { 
     $action 
    }(); 

}) -> where(array('controller' = > '[a-z]+', 'action' = > '[a-z]+')) 

,你可以改變路線::與路線::任何趕上這一切

其他簡單的測試,例如得到(應該是工作:)

路線::任何(「{控制器}/{行動?}」,函數($控制器,$動作= '索引') {

$class = $controller . 'Controller'; 
$controller = new $class(); 
return $controller->{$action}(); 

});

+0

改變路線::得到與路線::任何趕上它;) – BigfishDim

+0

這是我想要的,但它似乎並沒有工作 –

+0

1)什麼是控制器的名稱?它是否結束'控制器',如果不是,你可以從代碼中刪除它。 2)返回$ controller - > {$ action}();是一條線。 3)什麼是錯誤^^? – BigfishDim

0

我對Laravel框架沒有太多的知識。但總體來說這應該工作:

Route::get('Domain/{controller}/{action}', function($controller, $action) 
{ 
    // 
}) 
->where(array('controller' => '[a-z]+', 'action' => '[a-z]+')) 
+0

我怎麼在這個函數返回? –

1
Basic GET Route 

Route::get('controller/method', function() 
{ 
// 
}); 

Basic POST Route 

Route::post('controller/method', function() 
{ 

}); 

Named Route: 

Route::get('controller/action', array('uses' =>'[email protected]')); 

假設它是你的表單操作:

{{ Form::open(array('route' => 'register.store')) }} 

,那麼你可以編寫代碼路由爲:

Route::get('register', array(
    'uses' => '[email protected]', 
    'as' => 'register.index' 
)); 
Route::post('register', array(
    'uses' => '[email protected]', 
    'as' => 'register.store' 
)); 
0

您可以設置路由是這樣的:

Route::get('/orders/nieuw', '[email protected]'); 
Route::post('/orders/nieuw', '[email protected]_nieuw'); 
Route::get('/orders/edit/{orderId}', '[email protected]'); 
Route::post('/orders/edit/{orderId}', '[email protected]_edit'); 
Route::get('/orders/show/{idPartij}', '[email protected]'); 
Route::get('/orders/show_row/{idPartij}/{row_id}', '[email protected]_row'); 
Route::get('/orders/{active?}', '[email protected]'); 

簡體版:

Route::get只是在說:當我們收到獲取途徑,符合條件的,做一些事情。

條件('/orders/nieuw'是在轉換爲http://www.domain.com/orders/nieuw

一個URL如果條件被滿足,其中,要使用的OrdersController和執行函數nieuw(其爲OrdersController class內部的public function

相同適用於post請求。

你可以通過參數{param}。如果你有沒有必要PARAM可以使用{param?}

如果您需要更多的信息,讓我知道

編輯1 如果你讀this,那麼你應該說,以下是clossest爲它可以得到:

Route::get('home/test'); 
Route::get('home/test2'); 
Route::resource('home', 'HomeController'); 

這樣的話,你只需要申報控制器1次,非標鏈接...

+0

這就是我目前正在發生的事情。我只想要一種不必爲每一個動作指定路線的方法。 –

+0

@DanielDC,我已經更新了我的答案。也許這就是你想要的... – Mathlight