Yii 2.根据传递的参数不同的动作

时间:2016-08-18 09:11:34

标签: php url yii routing yii2

我想要什么

我希望对此类网址调用不同的操作

abc.com/ — Home page

abc.com/<argument-1>/<argument-2> — Search page

我有什么

这是我的web.php路由配置和搜索索引操作。

'urlManager' => [
            'enablePrettyUrl'     => true,
            'showScriptName'      => false,
            'enableStrictParsing' => false,
            'rules'               => [
                //Home page
                '/' => 'site/index',
                //Search
                '<tag>/<location>' => 'site/search',
            ],
        ],

abc.com/我得到一个无限循环。

索引操作

   /**
     * Displays homepage.
     *
     * @return string
     */
    public function actionIndex()
    {
        return $this->render('index', ['ip-info' => Locator::getLocation()]);
    }

搜索操作

public function actionSearch(
    array $tag = ['any'],
    array $location = ['any'],
    $display = 'list',
    $sort = 'name'
) {

    //...
    //some actions to fill the variables.
    //...

    return $this->render('search', [
        'data'         => $data,
        'display-type' => $display,
        'sidebar'      => $sidebar,
        'countries'    => $location,
        'sort'         => $sort,
        'title'        => $title,
    ]);
}

1 个答案:

答案 0 :(得分:0)

问题是在各种情况下。 AJAX生成错误的路由请求,最近的'urlManager' => [ 'baseUrl' => '/', 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableStrictParsing' => true, 'rules' => [ //Home page '/' => 'site/index', //AJAX 'ajax/<action:\w+>' => 'ajax/<action>', //Search '<tag:\w+>/<location:\w+>' => 'site/search', ], ], 提供循环。以下是工作规则的示例。

{{1}}