Php 拉维路由

Php 拉维路由,php,laravel,controller,Php,Laravel,Controller,我是拉威尔的新手,我在路线上遇到了麻烦 我要做的就是像这样使用我的路线 域/{controller}/{action} 这样我就可以进入主页的测试页面 主页/测试 文档对我来说没有意义,所以如果有人能给我指出正确的方向,那就太好了。目前我正在为每一页硬编码我的路线。我对Laravel框架没有太多知识。但总的来说,这应该是可行的: Route::get('Domain/{controller}/{action}', function($controller, $action) { // }

我是拉威尔的新手,我在路线上遇到了麻烦

我要做的就是像这样使用我的路线

域/{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');