2014-07-02 158 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