【发布时间】:2014-07-02 10:39:06
【问题描述】:
我是 laravel 新手,在路由方面遇到问题。
我想要做的是像这样使用我的路线
域/{控制器}/{动作}
这样我就可以去首页的测试页面了
首页/测试
文档对我来说真的没有意义,所以如果有人能指出我正确的方向,那就太好了。目前我正在为每一页硬编码我的路线。
【问题讨论】:
标签: php laravel controller
我是 laravel 新手,在路由方面遇到问题。
我想要做的是像这样使用我的路线
域/{控制器}/{动作}
这样我就可以去首页的测试页面了
首页/测试
文档对我来说真的没有意义,所以如果有人能指出我正确的方向,那就太好了。目前我正在为每一页硬编码我的路线。
【问题讨论】:
标签: php laravel controller
基本上你可以从:
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]+'))
您可以使用 Route::any 更改 Route::get 以捕获所有内容
其他简单的测试示例(应该可以工作:)
Route::any('{controller}/{action?}', function($controller, $action = 'index') {
$class = $controller . 'Controller';
$controller = new $class();
return $controller->{$action}();
});
【讨论】:
Basic GET Route
Route::get('controller/method', function()
{
//
});
Basic POST Route
Route::post('controller/method', function()
{
});
Named Route:
Route::get('controller/action', array('uses' =>'Controller@method'));
假设它是你的表单动作:
{{ Form::open(array('route' => 'register.store')) }}
那么你可以将路由的代码写成:
Route::get('register', array(
'uses' => 'RegisterController@index',
'as' => 'register.index'
));
Route::post('register', array(
'uses' => 'RegisterController@store',
'as' => 'register.store'
));
【讨论】:
我对 Laravel 框架了解不多。但总的来说,这应该可行:
Route::get('Domain/{controller}/{action}', function($controller, $action)
{
//
})
->where(array('controller' => '[a-z]+', 'action' => '[a-z]+'))
【讨论】:
你可以这样设置路由:
Route::get('/orders/nieuw', 'OrdersController@nieuw');
Route::post('/orders/nieuw', 'OrdersController@save_nieuw');
Route::get('/orders/edit/{orderId}', 'OrdersController@edit');
Route::post('/orders/edit/{orderId}', 'OrdersController@save_edit');
Route::get('/orders/show/{idPartij}', 'OrdersController@show');
Route::get('/orders/show_row/{idPartij}/{row_id}', 'OrdersController@show_row');
Route::get('/orders/{active?}', 'OrdersController@index');
简化版:
Route::get 简单地说:当我们收到一条满足条件的get route时,做一些事情。
条件('/orders/nieuw' 位于转换为http://www.domain.com/orders/nieuw 的URL 中
如果满足条件,将在哪里使用OrdersController并执行函数nieuw(这是public function内的public function)
post 请求同样适用。
你可以通过{param} 传递参数。如果你有一个不必要的参数,你可以使用{param?}
如果您需要更多信息,请告诉我
编辑 1 如果你读过this,那么你应该说以下是它所能得到的最接近的:
Route::get('home/test');
Route::get('home/test2');
Route::resource('home', 'HomeController');
这样,你只需要声明控制器1次,非标准链接...
【讨论】: