谁一开始就是大神?

PHP 第92页

PHP

Yii2.0路由规则配置的问题[2.0]

Swiftsuper阅读(26)

请教下 域名/site/login 可以怎么配置成 域名/login

配置文件中
这个是1.1.16的你参考下吧
给你一个带注释的吧。

默认访问模块配置[2.0]

Neodear阅读(30)

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

设置defaultRoute

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

Lidolphin阅读(28)

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

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

fulljoin的问题

HaHtom阅读(29)

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 用法 淘汰了呢

loginForm问题[1.1]

Jimdear阅读(37)

在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阅读(33)

$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阅读(28)

请问用yii能实现吗

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

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

foreverlemon阅读(31)

如下设置 文本框提示信息

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

如何通过

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

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

Yii更新数据问题[1.1]

loveLion阅读(30)

在登录中,验证通过更新用户表的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的代码贴一下

登录

找回密码

注册