我正在使用yii2基本模板.如何缩小页面的资产包?我在http://www.yiiframework.com/doc-2.0/guide-structure-assets.html上找到了一些关于缩小的文档,但未能这样做.
我有来自各种控制器操作的视图,这些操作只能从放置在另一个视图中的iframe运行.
目前,当iframe加载时,我进入登录页面登录,登录控制器(使用yii2用户模块)成功调用$this->goBack(),将我重定向到iframe源URL(因为它是访问的最后一页),而不是包含iframe的原始页面.
基本上,我想在$this->goBack()调用时将特定控制器操作排除在设置为返回URL之外.如果iframe中加载的所有操作都被自动排除,则奖励积分$this->goBack().
我想允许用户从两个不同的模型登录.
config.php文件
'user' => [
'identityClass' => 'app\models\User', //one more class here
'enableAutoLogin' => false,
'authTimeout' => 3600*2,
],
Run Code Online (Sandbox Code Playgroud)
LoginForm.php
public function rules()
{
return [
// username and password are both required
[['username', 'password'], 'required'],
// rememberMe must be a boolean value
['rememberMe', 'boolean'],
// password is validated by validatePassword()
['password', 'validatePassword'],
];
}
public function validatePassword($attribute, $params)
{
if (!$this->hasErrors()) {
$user = $this->getUser();
if (!$user || !$user->validatePassword($this->password)) {
$this->addError($attribute, Yii::t('user', 'Incorrect username or password.'));
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用基于yii2角色的访问控制(RBAC)系统.我定义了角色和权限,定义了规则,为用户分配了角色.一切正常.
但我想更新分配给用户的角色.例如:
Yii::$app->authManager->assign('admin', '11');
Run Code Online (Sandbox Code Playgroud)
在这里,我做了用户ID 11管理员.现在我想更新和更改.我想成为这个用户经理.
当我尝试:
Yii::$app->authManager->assign('manager', '11');
Run Code Online (Sandbox Code Playgroud)
此用户有admin + manager.我只想将此用户角色admin更新为manager.
我怎样才能做到这一点?
我想扩展自己的用户模型,使用一个名为getFirstname的函数.该函数应返回数据库中的自定义字段.
但是当我扩展用户模型时.它说"调用未知方法:yii\web\User :: getFirstname()"
我在app\models\user中的用户模型.我删除了文件中与此问题无关的方法.
<?php
namespace app\models;
use Yii;
use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;
/**
* User model
*
*/
class User extends ActiveRecord implements IdentityInterface
{
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%user}}';
}
/**
* @inheritdoc
*/
public function behaviors()
{
return [
TimestampBehavior::className(),
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [];
}
/**
* Finds user by email
*
* @param string $email
* @return …Run Code Online (Sandbox Code Playgroud) 我希望Yii中的用户身份验证基于我的数据库中的用户表.这是我的用户模型:
<?php
namespace app\models;
use Yii;
use yii\base\NotSupportedException;
use yii\db\ActiveRecord;
use yii\helpers\Security;
use yii\web\IdentityInterface;
/**
* This is the model class for table "user".
*
* @property integer $id
* @property string $username
* @property string $password
* @property string $title
*/
class User extends \yii\db\ActiveRecord implements IdentityInterface
{
public static function tableName()
{
return 'user';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['username', 'password'], 'required'],
[['username', 'password'], 'string', 'max' => 100]
];
}
/**
* …Run Code Online (Sandbox Code Playgroud) 我使用dektrium/yii2-user(在一个项目上)和yiisoft/yii2-authclient(在另一个项目上)通过Google帐户登录.前段时间一切都还好,但我想在最后一个作曲家更新之后发生了一些变化,现在我得到一个错误:当尝试打开登录页面时,"类yii\authclient\clients\GoogleOAuth不存在".有没有人有同样的问题或知道什么是错的?谢谢
嗨,我是YII 2框架的新手,
我目前正在从以下教程中学习http://www.yiiframework.com/wiki/490/creating-a-simple-crud-app-with-yii2-revised-12-20-2013/
一切正常,但是当我在SiteController.php中创建一个函数时
即
public function actionLogin()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
Run Code Online (Sandbox Code Playgroud)
当我按照以下方式从浏览器访问它时,
http:// localhost / basic / web / site / login /
我越来越
找不到对象!在我的浏览器中,但是我可以按照以下网址访问SiteController.php索引函数:http:// localhost / basic / web /
不确定我在这里缺少什么,可以让我知道这个问题吗?
感谢Adavance
编辑:出于调试目的,我将die语句放在\ basic \ web \ index.php中,显然它也未命中该文件
我是yii2的新手,现在我正在创建样本crud appliacation.我使用pjax进行gridview,它对我来说工作正常,我的问题是当我在那时更新我的行时pjax也调用现在我想要禁用此pjax更新按钮.我该如何解决这个问题?这是我的代码
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
use yii\widgets\Pjax;
/* @var $this yii\web\View */
/* @var $searchModel backend\models\PostSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Posts';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="post-index">
<h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<?= Html::a('Create Post', ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?php \yii\widgets\Pjax::begin(
['id' => 'StickerList', 'timeout' => false, 'enablePushState' => false, 'clientOptions' => ['method' => 'GET']]
); ?>
<?= GridView::widget([
'dataProvider' => $model->search(), …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用了dektrium/yii2-user.并且getID()在vendor/dektrium的User.php中有一个命名方法,该方法可以通过登录用户访问并返回.Yii::$app->user->getID()id
但是,还有另一种方法,getProfile()其功能是返回当前登录用户的完整配置文件详细信息.但是,这种方法给出了500内部服务器错误.
exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\web\User::getProfile()' in ... ...
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了这个问题但没有发现任何事情......帮助我的人们......
你如何使用变量添加或获取变量Yii::$app->user->something?
我不想让他们通过identity.我想通过特定的方式进行访问user.
例如,我想获取当前登录用户的用户名和名称:
\Yii::$app->user->username
Run Code Online (Sandbox Code Playgroud)
要么
\Yii::$app->user->name
Run Code Online (Sandbox Code Playgroud)