Laravel 5路由 - 理解

时间:2015-09-23 14:17:55

标签: php laravel filter routing laravel-5

我正在尝试调试Laravel 5.o代码。我从here学到了。

但我所面对的并不是那样的。我试图调试的是这样的 -

    <?php

    get("/test",function(){
        return $webinar = \App\Webinar::with('subscribers')->find(1);
    });

    Route::controllers([
        'auth' => 'Auth\GTWAuthController',
        'members' => 'MembersController',
        'customers' => 'CustomersController'
    ]);

    resource('users', 'Resources\UsersController');
    resource('users.subscribers-lists', 'Resources\SubscribersListController');
    resource('users.subscribers-lists.subscribers', 'Resources\SubscribersController');
    resource('users.webinars', 'Resources\WebinarsController');
    resource('users.panelists', 'Resources\PanelistsController');

    resource('qas', 'Resources\QAController');

    Route::group(array('prefix' => '/'), function() {
        Route::get('/webinar/{webinar_id}/{subscriber}', 
            array('as' => 'site.webinar', 'uses' => 'WebinarController@index'));


    ////////////////////////////////////////////////////Testing
    Route::get('test','CustomersController@getTest');
    Route::post('add_question','CustomersController@add_question');
    ///////////////////////////////////////////////////////////

        Route::get('/webinar/{webinar_id}/panelist', array('middleware' => 'user.panelist', 'as' => 'site.panelist.webinar', 'uses' => 'WebinarController@index'));
    });

所以,我无法理解溃败是如何运作的,任何人都可以帮助我们解决这些问题吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

好吧,我不知道你的问题是否会因为没有具体而被低估,但我会假设你想了解更多有关高级路由的信息,比如资源和前缀。

资源自动创建与资源或模型交互的所有可能方法的路径名称。

例如:

resource('client', 'ClientController');

使用routes.php文件中的单行代码,laravel 5.0现在具有以下代码:

//Uses show method, where you can return a view with a single client information
Route::get('client/{client}', [
    'as'=>'client.show'
    'uses'=>'ClientController@show'
]);

//Uses the index method, where you can return a view with a list of all the clients
Route::get('client', [
    'as'=>'client.index'
    'uses'=>'ClientController@index'
]);

//Uses the edit method, where you can return a view with an edit form for that specific client
Route::get('client/{client}/edit', [
    'as'=>'client.index'
    'uses'=>'ClientController@edit'
]);

AND SO ON 它创建了破坏,更新,创建和所有可能的方法,以及正确的路由方法,如PATCH,PUT,DELETE,POST,GET,所以你不必把它全部编码。

组只是一组共享共同特征的路由。在您提供的示例中,路由有一个共同的前缀'/'我不明白为什么,但最常见的是前缀如下:

Route::group(array('prefix' => 'academy'), function() {
        Route::get('/webinar/{webinar_id}/{subscriber}', 
            array('as' => 'site.webinar', 'uses' => 'WebinarController@index'));

因此,每当您输入类似www.myapp.com/academy/whatever的网址时,它都会使用该网内的路由。

还有其他问题吗?记得访问Laracasts.com,你将在5分钟内学到一堆