Php 拉维路由
我是拉威尔的新手,我在路线上遇到了麻烦 我要做的就是像这样使用我的路线 域/{controller}/{action} 这样我就可以进入主页的测试页面 主页/测试Php 拉维路由,php,laravel,controller,Php,Laravel,Controller,我是拉威尔的新手,我在路线上遇到了麻烦 我要做的就是像这样使用我的路线 域/{controller}/{action} 这样我就可以进入主页的测试页面 主页/测试 文档对我来说没有意义,所以如果有人能给我指出正确的方向,那就太好了。目前我正在为每一页硬编码我的路线。我对Laravel框架没有太多知识。但总的来说,这应该是可行的: Route::get('Domain/{controller}/{action}', function($controller, $action) { // }
文档对我来说没有意义,所以如果有人能给我指出正确的方向,那就太好了。目前我正在为每一页硬编码我的路线。我对Laravel框架没有太多知识。但总的来说,这应该是可行的:
Route::get('Domain/{controller}/{action}', function($controller, $action)
{
//
})
->where(array('controller' => '[a-z]+', 'action' => '[a-z]+'))
假设这是您的表单操作:
{{ 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'
));
基本上你可以从以下几点开始:
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::get with Route::any以捕获所有内容 其他简单的测试示例(应该有效:) 路由::任意({controller}/{action?}),函数($controller,$action='index')) {
})) 您可以按如下方式设置路由:
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路由时,做点什么
条件('/orders/nieuw'
位于翻译为http://www.domain.com/orders/nieuw
如果满足该条件,将在何处使用OrdersController
并执行函数nieuw
(这是OrdersController类中的公共函数
)
这同样适用于post
请求
Params可以通过{param}
传递。如果有不必要的param,可以使用{param?}
如果你需要更多信息,请告诉我
编辑1
如果你读了,那么你应该说以下是它可以得到的clossest:
Route::get('home/test');
Route::get('home/test2');
Route::resource('home', 'HomeController');
这样,您只需声明控制器1次,非标准链接…我在该函数中返回什么?更改Route::get with Route::any以捕获所有内容;)这是我想要的,但似乎不起作用1)控制器的名称是什么?它是否以“Controller”结尾,如果不是,您可以从代码中删除它。2) 返回$controller->{$action}();这是一条线。3) 错误是什么^^?它是带有“index”操作的“HomeController”,所以我希望像domain.com/home/indexDid一样使用它。您从路由::get中删除“domain/”?这就是我目前正在做的事情。我只是想要一种不必为每个动作指定路线的方法。
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('home/test');
Route::get('home/test2');
Route::resource('home', 'HomeController');