谁一开始就是大神?

PHP 第102页

PHP

在注册的时候怎么判断用户已经是否存在,并把错误信息显示出来?求解![1.1]

Cleverdolphin阅读(83)

控制器:
//登录

public function actionLogin()
{
    
    $this->layout="//layouts/column3";
    $model=new LoginForm;

    // if it is ajax validation request
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }

    // collect user input data
    if(isset($_POST['LoginForm']))
    {   

        $model->attributes=$_POST['LoginForm'];
        $model->password = md5($_POST['LoginForm']['password']);
        // validate user input and redirect to the previous page if valid
        if($model->validate() && $model->login()) {
            //var_dump(yii::app()->user->getState('userName'));exit();
            if((yii::app()->user->getState('isAdmin'))==true) {
                $this->redirect(array('meeting/index'));
            }
            $this->redirect(Yii::app()->user->returnUrl);
        }
    }
    // display the login form
    $this->render('login',array('model'=>$model));
}

//注册

public function actionCreate()
{

    $this->layout = '//layouts/column3';
    $model=new Person;

    
    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['Person']))
    {
        $model->attributes=$_POST['Person'];
        $model->password = md5($_POST['Person']['password']);
        $model->repeat_password = md5($_POST['Person']['repeat_password']);
        $model->state = 1;
        if($model->save())
            $this->redirect(array('login'));
    }

    $this->render('register',array(
        'model'=>$model,
    ));
}

注册的时候,只需要将 username 字段的 验证规则设置为 unique 即可。意思就是说要此字段的值唯一
请用markdown重新编辑

如何从一个控制器调用另外一个控制器的方法?[1.1]

Litom阅读(86)

我想从这个控制器!

class WechatController extends FrontBase {}调用

class QrcodeController extends FrontBase {
    //获取用户基本信息
    public function actionGetUserInfo($openid){} 
}

actionGetUserInfo 方法 我应该如何写比较好 ,请大家帮我解决一下这个问题

$control=Yii::app()->runController('Qrcode/GetUserInfo','openid'=>12);
不带参数的GetUserInfo()
2.0的话只有runaction这个方法了,没有这个runcontroller了,2.0调用也只是Yii::$app->runAction([‘order/admin’]);
想问下,独立操作也是这样调用的吗?Yii::$app->runAction([‘order/admin’]);
Yii::$app->runAction([‘order/admin’]);
234234
Yii::$app->runAction([‘order/admin’]);
如果这样操作的话会报错:trim() expects parameter 1 to be string, array given
Yii::$app->runAction(‘order/admin’); 只有这样才行,可是怎么传参呢?
yes it is.

get方式提交覆盖yii访问控制器方法的参数[2.0]

Ellielovely阅读(86)

现在有一个问题是这样的,我要在后台做一个简单的搜索,提交方式是form的get方式,但因为yii的提交地址是 web/index.php?r=sys/index 已经是带get的参数了,我用个头就直接把?后面的覆盖了,有什么办法解决啊?大神们帮解决下字撒!!!!!!!!

建议你看看配置,用rest风格传参,类似:web/sys/index/tag/123456,会简单很多
可以把把参数拼接在地址后面啊 & 连接

model的验证规则!!!!

Newdolphin阅读(75)

场景:表单中两个字段,选填其中一个字段,另一个字段必须为空,请问怎么写rule?

没看太明白意思,大概理解成为有A,B两个字段,如果A不填写B就为必填,B不填写A就为必填;
实现的方式有很多,比如以下方式可以自定义写个方法验证:(如下仅供参考)
&& 应该改成 || 吧。但愿我没看错god bless me!
如果在yii2.0中有个when和whenClient的验证设置,
a, required, when => [$this, 'isEmpty'], message => 不能为空,
单独写一个验证方法就好了啊,逻辑也比较简单
when属性,翻文档看下。

如何管理阿里云服务器中的代码

Kindslim阅读(78)

我想管理阿里云中的代码,使用git进行管理,应该怎么弄,有人知道吗?

如果是CentOS系统,直接使用yum install git就可以了
这跟阿里云没啥关系吧。跟系统有关系。。
那你应该搜搜git的相关教程。网上一大堆。先把基础学好吧

义独立操作的文件放哪里[2.0]

lovelylovely阅读(84)

新手刚看到定义控制器中独立操作那,请问定义独立操作的文件应放在哪个目录下?

哪里都可以,给定义个namespace 就可以了
问题好抽象,可以具体点不?
在和config文件夹平行的一层新建一个actions文件夹,然后你在里面新建类就行了。名称空间写namespace app\actions;
然后引用的时候就use app\actions\XXX不就行了,我觉得文档说的挺明白的啊。

findOne()中怎么用好的方式实现?[2.0]

Braveelephant阅读(79)

经常这样使用

Page::findOne([
 'a' => 'aa',
 'b' => 'bb',
]);

生成的sql也是 where a = aa and b = bb

这次想使用

Page::findOne([
 'a >' => 'aa',
 'b <' => 'bb',
]);

这样不行,有啥好的方式实现吗?

Page::find()->where(['>', 'a', 'aa'])->andWhere(['<', 'b', 'bb'])->all();

CListView显示的布局问题[1.1]

NiceStone阅读(84)

再修改一个clistview的代码,代码如下

<?php $this->widget(
    'zii.widgets.CListView',
    array(
        'dataProvider'  =>  $courseDataProvider,
        'itemView'      =>  '_item_course',
        'template'      =>  '{items}',
        'emptyText'     =>  '<div class="col-sm-9">该分类暂时未有课程</div>'
    )
); ?>

想请问一下在最后显示_item_course的页面元素中为什会出现在

<div id="yw0" class="list-view">
    <div class="items">
    ......
    </div>
</div>

导致该页面有些东西出现不正常

对啊,自动生成的东西会有这个存在的
如果不想要的话,不妨继承底层类重写过这个东西呢?

关于composer问题[2.0]

HoneyEagle阅读(84)

请问自己在本机上用compsoer安装的工程可以正常跑,但是放上github后在服务器clone下来后提示确实vendor文件,有人告诉我需要用composer安装,我不太理解,请问具体应该怎么做呢,另外,其中的机制是什么,为什么直接把工程clone下来不是应该具备所有需要的文件了吗,谢谢

vendor目录都是一样的 而且原则上不允许任何手动修改,所以完全没有必要纳入版本控制(在.gitignore里配置)。只需要知道composer.json就能知道vendor下都有什么,所以你克隆下代码后要安装vendor。如果你怕本地安装的插件和服务器上的插件版本有差异导致bug,那么composer.lock文件就可以起作用了,它记录了你当时安装插件的具体版本,团队其他小伙伴也可以根据lock文件安装和你完全一样版本的插件(包括yii2核心文件)。
因为.gitignore把vendor忽略掉了,你的情况,可以这样处理:
  将根目录的.gitignore打开,注释掉对/vendor的忽略
  在vendor目录写个shell删除vendor中的所有.gitignore文件,每次执行过composer对vendor目录中的内容有更新,就执行一下这个shell,这样保证所有vendor的文件都能放到git库。比如clean.sh,内容如下:
  BTW,人家这样设计.gitignore是因为人家网速快,部署服务器的时候,执行一下composer update –prefer-dist即可得到vendor的文件。
帮忙顶下!
有忽略的文件。还得装忽略的文件
确定clone的根目录下有composer.jsoncomposer.lock
安装好composer后到命令行到你的根目录下执行:
然后vendor就回来了。

登录

找回密码

注册