Q: Yii2整合Rbac和按钮判别
Q: Yii2 integrating Rbac and button discrimination
我正在 php 使用 Yii2 开发一个网站,我遇到了 Rbac 问题。我遵循了官方指南,我 运行 进行了迁移,现在我的数据库中有四个默认表,它们定义了我的角色和权限。现在我不知道如何将这些角色集成到我的项目中,我的意思是我希望有一些视图只对具有特定权限的用户可见,但无法理解实现这一点的方法。
我也有登录问题,我不知道如何区分按钮点击。
登录(查看):
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button', 'value' => 'login']) ?>
<?= Html::submitButton('Register', ['class' => 'btn btn-primary', 'name' => 'register-button', 'value' => 'register']) ?>
</div>
</div>
站点管理员:
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if (isset($_POST['submit']) && $_POST['submit']=='login') {
return $this->goBack();
}
if (isset($_POST['submit']) && $_POST['submit']=='register') {
return $this->render('register');
}
return $this->render('login', [
'model' => $model,
]);
}
我只需要在用户单击右键后以不同的视图呈现。如果单击登录按钮,我想在登录视图中重定向,如果单击注册按钮,我想在注册视图中重定向。
这好像是一道二合一的题。
首先是RBAC。
这在 docs. You can use AccessControl to only allow certain actions to be accessed by a role or permission. If you need to show some content in a view based on a role or permission, use if(Yii::$app->user->can('permission_or_role)) echo "I can";
(docs) 中解释得很好。
二、按钮
勾选link,按钮的名称必须是你在控制器中勾选的名称(不是login-button
/register-button
勾选submit
).
我正在 php 使用 Yii2 开发一个网站,我遇到了 Rbac 问题。我遵循了官方指南,我 运行 进行了迁移,现在我的数据库中有四个默认表,它们定义了我的角色和权限。现在我不知道如何将这些角色集成到我的项目中,我的意思是我希望有一些视图只对具有特定权限的用户可见,但无法理解实现这一点的方法。
我也有登录问题,我不知道如何区分按钮点击。
登录(查看):
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button', 'value' => 'login']) ?>
<?= Html::submitButton('Register', ['class' => 'btn btn-primary', 'name' => 'register-button', 'value' => 'register']) ?>
</div>
</div>
站点管理员:
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if (isset($_POST['submit']) && $_POST['submit']=='login') {
return $this->goBack();
}
if (isset($_POST['submit']) && $_POST['submit']=='register') {
return $this->render('register');
}
return $this->render('login', [
'model' => $model,
]);
}
我只需要在用户单击右键后以不同的视图呈现。如果单击登录按钮,我想在登录视图中重定向,如果单击注册按钮,我想在注册视图中重定向。
这好像是一道二合一的题。
首先是RBAC。
这在 docs. You can use AccessControl to only allow certain actions to be accessed by a role or permission. If you need to show some content in a view based on a role or permission, use if(Yii::$app->user->can('permission_or_role)) echo "I can";
(docs) 中解释得很好。
二、按钮
勾选login-button
/register-button
勾选submit
).