2

laravel での管理ルーティングに以下のコードを使用しています。

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/userList', 'Admin\UserController@userList');
Route::get('/users/detail', 'Admin\UserController@detail');
Route::get('/posts/view', 'Admin\PostController@view');
Route::get('/posts/edit', 'Admin\PostController@edit');
Route::get('/posts/add', 'Admin\PostController@add');
});

これは私にとってはうまくいきます。しかし、そのためのコードに新しい関数を追加するときは、ルート ファイルにルーティングを記述する必要があります。例: ユーザー コントローラーに編集機能を追加したい場合、そのためには のような新しいルートを追加する必要があります。

Route::get('/users/edit', 'Admin\UserController@edit');

そのため、関数ごとにルーティングを追加する必要があります。

たとえば、管理ルーティングにワイルドカードを使用する方法を知りたいので、各機能ではなくコントローラーに対してのみルーティングを記述する必要があります。

Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'Admin\AdminController@home');
Route::get('/users/:any', 'Admin\UserController@:any');
Route::get('/posts/:any', 'Admin\PostsController@:any');  
});

関数名をワイルドカードで置き換え、その関数に自動リダイレクトします。

4

1 に答える 1

0

必要なことを行う暗黙のコントローラーを使用できます。

まず、暗黙的なコントローラーのルートを宣言します

Route::controller('users', 'UserController');

次に、コントローラーで、ルートにアクセスするために使用される HTTP 動詞を使用してルートに名前を付けるための規則に従う必要があります ( GET の場合はget、POST の場合はpost 、両方の場合はany ) 。

class UserController extends Controller {

    public function getIndex()
    {
        //
    }

    public function postProfile()
    {
        //
    }

    public function anyLogin()
    {
        //
    }

}

ドキュメントからの合成メソッド名に関する注意

コントローラ アクションに複数の単語が含まれている場合、URI で「ダッシュ」構文を使用してアクションにアクセスできます。たとえば、次のコントローラ アクションはURIUserControllerに応答します。users/admin-profile

public function getAdminProfile() {}
于 2015-06-06T13:17:57.190 に答える