谁一开始就是大神?

PHP 第48页

PHP

这句代码怎么理解[2.0]

foreverslim阅读(55)

在使用yii2-start-kit,修改个人信息相关程序。

public function actionProfile()
{
  //  $model = new UserProfile;//使用这个也不对
  $model = Yii::$app->user->identity->userProfile;//这里
    if ($model->load($_POST) && $model->save()) {
        Yii::$app->session->setFlash('alert', [
            'options'=>['class'=>'alert-success'],
            'body'=>'修复的信息已经保存!'
        ]);
        return $this->refresh();
    }
    return $this->render('profile', ['model'=>$model]);
}

就是这句 $model = Yii::$app->user->identity->userProfile;
它什么时候塞进去,就是找不到。按说应该是登录后塞进去的,相关登录代码,afterlogin啊都找不到。

有熟悉的yii2-start-kit的兄弟帮忙看下

yii2-starter-kit/common/models/User.php 文件有个 getUserProfile方法
看看user对应model的userProfile属性
$model = UserProfile::find()->where('id='.Yii::$app->user->identity->id)->one();

有没有快速删除、更新单条数据记录的方法呢?[2.0]

loveCherry阅读(65)

找来找去似乎就三种方法:

  1. ::find()->delete(),我猜这样会多一次select影响性能?
    (顺便问下有没有方法可以记录Yii框架生成并查询的SQL语句?)
  2. ::deleteAll(),没有limit,也是影响性能
  3. 手写语句,太麻烦

所以,有没有又方便又性能比较好的删除、更新单条数据的方法呢?
例如CI框架可以这样:db->from('table')->limit(1)->where('id', 1)->delete()

find应该不会产生查询的,除非->one()才会,因为find是连贯方法的起始点,做一些准备工作,应当不存在你说的问题,你可以用yii debug看一下所执行的sql语句。
query可以啊, yii\db\Query
::findOne() ???
http://www.yiichina.com/doc/api/2.0/yii-db-command#delete()-detail

多模块登录问题[2.0]

Candyqueen阅读(54)

如果我在一个框架下有两个模块,都有登录功能,怎么样能让他们两都分开验证,而不是比如我登录了一个模块,另一个模块都不用登录都进来了,不知道在哪里配一下

你可以参考下yii2.0的高级版啊
讲道理,这恐怕有些困难
其实可以换种方式
归根结底就是要修改config/main.php里面components下的session组件的name值和user组件identityCookie的name值。
方法就有多种了,
1,可以用高级版的方法,直接建新的项目。不同入口加载不同配置。
2,可以在入口文件上做判断,根据模块添加不同的配置文件。
3,添加beforeRequest方法:用Yii::$app->session 配置session组件和Yii::$app->user配置user组件。
在模块配置中,配置user组件,重点是idParam参数,user组件在保存id的session时,用的是idParam作为key,所以设置不同模块的idParam不同就可以了。

请问yii2有没有不刷新整个页面而只刷新登录这部分的返回方法?[2.0]

ACGseagull阅读(57)

登录.png

public function actionLogin(){
        if(\Yii::$app->request->isGet) return '404';
        $model=new User();
        if(\Yii::$app->request->isPost && $model->load(\Yii::$app->request->post()) &&$model->validate()){
            return $this->redirect(['site/index']);
        }
        return ???
    }

就是说点击登录后只是将返回的错误提示显示到登录层里,不会整个页面发生变化。不想写ajax了,就问问yii2有没有这种返回方式

这个login操作里返回什么都行吧,把错误返回不就行了么?业务流程控制不应该是在前端ajax那里写么?
看看pjax
你贴图那个不是ajax的?
ajax的代码也不复杂呀, 也就四五行的事。
用 renderAjax

yii2的复选框默认就是勾选的,无法去掉[2.0]

Jadenice阅读(58)

代码如下:

<?php $form=ActiveForm::begin([
            'fieldConfig'=>[
                'template'=>'{input}',
            ],
        ]);?>
        <div class="span4 box">
            <div class="content-wrap">
                <?=$form->field($model,'adminuser')->textInput(['class'=>'span12','placeholder'=>'管理员帐号']);?>
                <?=$form->field($model,'adminpass')->textInput(['class'=>'span12','placeholder'=>'管理员密码'])?>
                <a href="#" class="forgot">忘记密码?</a>

                    <?=$form->field($model,'rememberMe')->checkbox([
                        'id'=>'remember-me',
                        'template'=>'<div class="remember">{input}<label for="remember-me">记住我</label></div>'
                    ])?>
                <?=Html::submitButton('登录',['class'=>'btn-glow primary login'])?>
            </div>
        </div>
        <?php ActiveForm::end(); ?>

也就是说,这个:

<?=$form->field($model,'rememberMe')->checkbox([
                        'id'=>'remember-me',
                        'template'=>'<div class="remember">{input}<label for="remember-me">记住我</label></div>'
                    ])?>

默认勾选,效果如图:
1.jpg
而我通过firebug发现,去掉框选部分才能去掉默认勾选:
2.jpg
而这个checked=””却是自动生成的
请问怎样设置让这个checked=””消失,或者说取消默认勾选?

111.png
看图就能明白了
yii默认的应该是不选中的,你这个如果是修改第三方的插件或者产品的话,最好从controller里找找原因
或者你可以试试用JQ来去掉呢.

composer下新的好像发现一个异常情况求解。[2.0]

Slysea阅读(57)

`

array(5) {

["errorHandler"]=>
object(yii\console\ErrorHandler)#6 (7) {
  ["discardExistingOutput"]=>
  bool(true)
  ["memoryReserveSize"]=>
  int(262144)
  ["exception"]=>
  NULL
  ["_memoryReserve":"yii\base\ErrorHandler":private]=>
  string(262144) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

`
var_dump(Yii::$app);die; Yii::$app 进行打印 出现 26W个X 之前也遇到过,没关注,今天新安装的都出现了。。。。想过来问问。。

也发现了这个问题,追了源码:
在ErrorHandler类里,有这个变量:
/**
*/
public $memoryReserveSize = 262144;
因为php没有用户主动分配内存的机制,所以,为了内存溢出也能抛出错误,预留了26w个x预先占用了内存。。。
是不是很冷,哈哈
解决了吗?遇到同样问题。。

验证失败时的红框可以去除吗?[2.0]

Fionadolphin阅读(57)

微信截图_20160922140640.png

就像这个,可以吧红框去掉吗?如果可以的话,该怎么做啊?

在前端改一下就好了
54.png
这那个 border-color
验证规则去掉require,可是这样还验证什么。哦,我理解错了,那个样式has-error
修改has-error的CSS

YII域用户登录[2.0]

youthbubble阅读(52)

现在想用YII做域账户登录,没有找到相关的资料,求思路和资料啊~

提供一个示例代码吧:
楼上正解。

登录

找回密码

注册