【问题标题】:Yii2 Cant call the action Function?Yii2 不能调用动作函数?
【发布时间】:2020-06-04 21:26:27
【问题描述】:

我在这里遇到了一个非常奇怪的错误。我试图在我的控制器中调用一个动作,但它会导致 404 页面。

我有一个名为 admin 的模块,它有一个名为 Product 的控制器。代码如下

class ProductController extends Controller
{


public function actionIndex()
{
    $session = Yii::$app->session;
    if($session->has('user'))
    {
        $this->layout="admin-layout";
        $numbers= UserPurchasedNumber::find()->all();
        return $this->render('index',["number"=>$numbers]);
    }
    else
    {
         return $this->redirect(['admin/default/login']);
    }
}

public function actionPurchaseLocalNumber() //Dont get called
{
    $session = Yii::$app->session;
    if($session->has('user'))
    {
        $this->layout="admin-layout";
        return $this->render('addlocalnumber');
    }
    else
    {
         return $this->redirect(['admin/default/login']);
    }
}


}

在我看来,我正在尝试按如下方式调用 url

<div style="text-align: center; padding:15px">
                <a href="<?php echo Yii::$app->urlManager->createUrl('admin/product/purchaselocalnumber'); ?>" class="btn btn-primary">Purchase Numbers</a>
            </div>

但它正在抛出 404。

事实上,当我将动作名称更改为

购买

仅从视图文件中调用它是否有效?

什么问题??

【问题讨论】:

  • 试试admin/product/purchase-local-number
  • 它有效,但它是这样的吗?在 Y1.x 中这个问题永远不会发生
  • 在 Yii 2 中,action/controllers 名称中的驼峰式命名解析为更友好的名称 - camelCase 变为 camel-case,在 URL 中看起来比在 Yii 1.1 中的 camelCase 更好。

标签: routes yii2 url-routing yii2-basic-app


【解决方案1】:

问题出在你的网址:

admin/product/purchaselocalnumber

您的操作被命名为:

actionPurchaseLocalNumber

所以你的网址必须是这样的:admin/product/purchase-local-number

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多