1

ここで何が起こったのか本当にわかりません。基本的に、次のように admin で始まるルートのグループがあります。

<?php

/** ------------------------------------------
 *  Route model binding
 *  ------------------------------------------
 */
Route::model('user', 'User');
Route::model('role', 'Role');

/** ------------------------------------------
 *  Admin Routes
 *  ------------------------------------------
 */
Route::group(array('prefix' => 'admin', 'before' => 'auth'), function() {

        # User Management
        Route::get('users/{user}/show', 'AdminUsersController@getShow')
            ->where('user', '[0-9]+');
        Route::get('users/{user}/edit', 'AdminUsersController@getEdit')
            ->where('user', '[0-9]+');
        Route::post('users/{user}/edit', 'AdminUsersController@postEdit')
            ->where('user', '[0-9]+');
        Route::get('users/{user}/delete', 'AdminUsersController@getDelete')
            ->where('user', '[0-9]+');
        Route::post('users/{user}/delete', 'AdminUsersController@postDelete')
            ->where('user', '[0-9]+');
        Route::controller('users', 'AdminUsersController');

        # User Role Management
        Route::get('roles/{role}/show', 'AdminRolesController@getShow')
            ->where('role', '[0-9]+');
        Route::get('roles/{role}/edit', 'AdminRolesController@getEdit')
            ->where('role', '[0-9]+');
        Route::post('roles/{role}/edit', 'AdminRolesController@postEdit')
            ->where('role', '[0-9]+');
        Route::get('roles/{role}/delete', 'AdminRolesController@getDelete')
            ->where('role', '[0-9]+');
        Route::post('roles/{role}/delete', 'AdminRolesController@postDelete')
            ->where('role', '[0-9]+');
        Route::controller('roles', 'AdminRolesController');

        # Admin Dashboard
        Route::controller('/', 'AdminDashboardController');
    });


/** ------------------------------------------
 *  Frontend Routes
 *  ------------------------------------------
 */
// User reset routes
Route::get('user/reset/{token}', 'UserController@getReset')
    ->where('token', '[0-9a-z]+');
// User password reset
Route::post('user/reset/{token}', 'UserController@postReset')
    ->where('token', '[0-9a-z]+');
//:: User Account Routes ::
Route::post('user/{user}/edit', 'UserController@postEdit')
    ->where('user', '[0-9]+');

//:: User Account Routes ::
Route::post('user/login', 'UserController@postLogin');

# User RESTful Routes (Login, Logout, Register, etc)
Route::controller('user', 'UserController');

//:: Application Routes ::
# Filter for detect language
Route::when('contact-us', 'detectLang');

# Contact Us Static Page
Route::get('contact-us', function() {
        // Return about us page
        return View::make('site/contact-us');
    });

# Index Page - Last route, no matches
//Route::get('/', array('before' => 'detectLang', 'uses' => 'BlogController@getIndex'));
Route::get('{par1}', function($par1) {
        return $par1;
    });
Route::get('{par1}/{par2}', function($par1, $par2) {
        return $par1 . '-' . $par2;
    });
Route::get('/', function() {
        return 'route not found';
    });

//filters.php

Route::filter('auth', function()
{
    if (Auth::guest()) {
        Session::put('loginRedirect', Request::url());
        return Redirect::to('user/login/');
    }
});

これは以前は正常に機能していましたが、突然 admin という単語がプレフィックスとして気に入らないと判断したため、たとえば、ルート admin/x または admin/x/y/z にアクセスすると、ルートが見つからないというメッセージが表示されます。ただし、何らかの理由で、このプレフィックスを別のものに変更すると、たとえば sadmin ルートが以前と同じように機能します。さらに奇妙なのは、mysite.com/var1/var2 のようなものを試すと、パラメーターのリターン ルートが var1 と var2 を返すという事実です。しかし、admin/var1 を実行すると、ルートが見つからないというメッセージが表示されます。

ここで何が変更された可能性があるかについてのアイデア....ルートファイルで何も変更していないと確信しています...当時、私はコントローラーに取り組んでいました。残念ながら Ctrl+Z は私を保存しませんでした.変更をプッシュしてからしばらく経ちました.

4

2 に答える 2

3

余分なルートをすべて削除して、逆方向に作業してみてください - ルートを 1 つずつ再構築しますか?

于 2013-07-29T14:13:08.907 に答える
0

これを解決するのを手伝ってくれた@The Shift Exchangeに感謝します。フィルターの問題であることがわかりました。基本的に、ロール名に基づいてフィルターを適用していました-残念ながら、編集機能をテストするときに、管理者ロールの名前を誤って編集してしまいました-ユーザーエラー!!!

ご協力いただきありがとうございます。おそらくこれは他の誰かを助けるでしょう。

于 2013-07-29T13:53:52.693 に答える