【发布时间】: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