谁一开始就是大神?

PHP 第92页

PHP

默认访问模块配置[2.0]

Neodear阅读(63)

请教下 我用的是 yii2 高级版 我把网站根目录设置在backend/web backend 里面有index模块 怎么配置默认访问的是 index/DefaultController 现在默认访问的是模块外面的 site/login

设置defaultRoute

Yii2.0如何给做自义表单的验证?[2.0]

Lidolphin阅读(64)

我想在项目里面使用一个自定义的表单结构, 同时做一些表单验证, 希望能够用到Yii里面自带的一些验证功能, 这个方式怎么去做啊?
新手一枚, 望大家多多指教, 谢谢.

自定义一个模型,然后在这个模型里设置rules,会自动生成表单验证。
例如:

fulljoin的问题

HaHtom阅读(62)

mysql> select* from table1;
+------+-------+
| id   | name  |
+------+-------+
|    1 | lee   |
|    2 | zhang |
|    4 | wang  |
+------+-------+
3 rows in set (0.00 sec)

mysql> select * from table2;
+------+-------+
| id   | score |
+------+-------+
|    1 |    90 |
|    2 |   100 |
|    3 |    70 |
+------+-------+
3 rows in set (0.00 sec)

mysql> select * from table1 full join table2 on table1.id=table2.id;
ERROR 1054 (42S22): Champ 'table1.id' inconnu dans on clause

我都怀疑是不是版本问题,或者full join on 用法 淘汰了呢

出现多条数据重复[1.1]

Newlemon阅读(77)

运行下面的代码,本地windows环境不会出现存入多条重复数据的情况,正式linux环境经常出现存入多条重复数据,有人知道原因吗?

public function actionTest(){
    set_time_limit(0);
    $timeStamp = strtotime('2015-04-27');
    //日期等于今天日期跳出循环
    while (date('Y-m-d', $timeStamp) != date('Y-m-d', time())) {
        $date = date('Y-m-d', $timeStamp);
        //todo 数据存入数据库的操作;
        $timeStamp = strtotime('+1 day', $timeStamp);
    }
}

可能是多次调用了函数,具体的要自己去调试才知道哪里出了问题。
如果仅需要运行一次,尝试加个互斥变量。

如何通过ActiveField中field方法设置hintOptions选项[2.0]

foreverlemon阅读(68)

如下设置 文本框提示信息

public function attributeHints(){
    return [
        'username' => 'fill your name',
        'password' => 'fill your password'
    ];
}

如何通过

$form->field($model, 'username', ['template'=> '{input}{hint}{error}'])

field函数里面第三个参数进行设置, 达到同样的效果?

loginForm问题[1.1]

Jimdear阅读(74)

在LoginController中我写到

function actionIndex()
{
    $loginForm = new LoginForm;
    if(isset($_POST['loginForm'])){
        $LoginForm->attributes = $_POST['loginForm'];
        if($loginForm->validate()){
            echo 1;die;
        }
    }
    // 加载为空的布局
    $this->layout = 'empty';
    $this->render('index');
}

在视图中的就不粘了,前台直接显示未定义变量

Error 500
Undefined variable: loginForm

请问是什么问题,求指教

看看中间行的的那个$LoginForm的L有无问题。

大侠给讲解一下,$model->load()与validate()[2.0]

GraceLion阅读(69)

$model->load($post) 还要不要 && $model->validate()一起用?
更新和添加数据的时候有区别吗?
还有 model 里没写rules的时候 load()会不会成功?load()会不会验证rules里的规则?还是要validate()的时候才验证rules?

要一起用,load()只是加载数据,validate()才是验证。
更新和添加都用save(),yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()
load()setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。
需要一起用
load填充属性,validate根据rules进行校验
直接看源码就明白了。
借楼问一个问题
model里面规定了必传的字段
但是还有其他的参数是非必传的
这时候 其他的字段就算赋值了也保存不了是什么原因呢?
@大裤叉子 已经回答过了,需在rules里面配置上且属性为safe~~
爬啊爬怕怕!!Mark

oracle的读写分离[1.1]

Nobletom阅读(61)

请问用yii能实现吗

在配置里修改db的内容应该就可以了,不过我贴的配置是yii2的,1.x的没用过不是很了解

Yii更新数据问题[1.1]

loveLion阅读(66)

在登录中,验证通过更新用户表的ip和时间
数据库中 time 是时间戳 为 Int
我查询的代码

$username = $loginForm->attributes['username'];
$user = User::model()->find('username=:name',array(':name'=>$username)); 
//$user->time=time();
//$user->ip=Yii::app()->request->userHostAddress;
var_dump($user);die;
$user->save();

网页打印的代码

array (size=6)
      'id' => string '1' (length=1)
      'username' => string 'admin' (length=5)
      'password' => string '21232f297a57a5a743894a0e4a801fc3' (length=32)
      'ip' => string '127.0.0.1' (length=9)
      'time' => string '1435394244' (length=10)
      'class' => string '1' (length=1)

我组装数组的代码

Yii::app()->session['logintime'] = time();
$username = $loginForm->attributes['username'];
$user = User::model()->find('username=:name',array(':name'=>$username)); 
$user->time=time();
$user->ip=Yii::app()->request->userHostAddress;
var_dump($user);die;
$user->save();

网页显示的

    array (size=6)
      'id' => string '1' (length=1)
      'username' => string 'admin' (length=5)
      'password' => string '21232f297a57a5a743894a0e4a801fc3' (length=32)
      'ip' => string '127.0.0.1' (length=9)
      'time' => int 1435553625
      'class' => string '1' (length=1)

数据库结构中时间为int型。
最后更新提交的时候提示

CDbException
Column name must be either a string or an array.
C:\wamp\www\cms\framework\db\schema\CDbCommandBuilder.php(831)

model User的代码贴一下

登录

找回密码

注册