谁一开始就是大神?

PHP 第114页

PHP

CDbCommand和ActiveRecord区别?

BraveCherry阅读(130)

用CDbCommand操作CRUD和用Active Record有什么区别?
权威指南介绍:
Active Record是为了不让我们写冗长的SQL语句,在性能调节上又说:不要滥用 Active Record。虽然 Active Record 擅长以一个 OOP样式模型化数据, 它实际上为了它需要创建一个或几个对 象来代表每条查询结果降低了性能。 对于数据密集的应用,在底层使用 DAO 或 数据库接口 将是一个更好的选择。

哪位大神能具体说一下什么情况下用Active Record合适,而什么情况下又是我们直接写SQL执行合适呢?

单表的时候,用AR很快,多表联合的时候,用sql更快。
其实AR也是调用了CDbCommand,在CActiveRecord的1297行(版本1.1.13)
用AR的话可以使用Scenario,Scope等,另外,zii跟AR绑定比较深,用zii的话就要用AR

cform使用问题:只显示button

dmcrab阅读(98)

model:User.php

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of User
 *
 * @author Administrator
 */
class User extends CActiveRecord {

    //静态类
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    //表名
    public function tableName() {
        return '{{user}}';
    }

    //cform配置文件
    public function getFMConfig() {
        return array(
            'elements' => array(
                'name' => array('type' => 'text', 'maxlength' => 80),
                'password' => array('type' => 'password', 'maxlength' => 80),
            ),
            'buttons' => array(
                'button' => array('type' => 'submit', 'label' => '提交'),
            ),
        );
    }

}
--------------------------------
controller UserController.php

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of UserController
 *
 * @author Administrator
 */
class UserController extends Controller{
    public function actionRegister(){
        $user = new User();
        $form = new CForm($user->getFMConfig(), $user);

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

    
}

——————————–

view :register.php

<?php echo $form ?>

———————————————————————-

现象:只显示提交按钮。不显示,input框

如果在elemtns属性中设置label 属性,也能显示,就是不显示正常input框

原理参见 源代码 CForm类的renderElement方法片段, 如果没有设置则不会进行elements中每一个element的渲染;而button的显示条件不一样,所以会显示出来。
需要在model类中加入rules方法,如:
就可以显示出来了
或者这样:
都是为了让元素具有可见性。

YII日志的时间格式(时区)不对。

lovelypony阅读(120)

在配置中打开日志功能

runtime/application.log这个文件的时区格式不对。

比北京时间晚7个小时。

修改php.ini里面的date.timezone
或者在入口文件里面date_default_timezone_set
晚8个小时吧,目测是美国时间= =不知道怎么调

新手问几个yii的小问题

Fionasuper阅读(127)

新手求教:

1、在完成一个程序之后,yii框架还有用吗?(需要将它和程序一起打包上传到服务器使用吗?)

2、可以将yii.php 改为其他名称吗?例如core.php。这样会有什么影响?

第一个是需要上传的。
第二个应该是可以改的,我没试过。不过你做好访问控制和权限,别人是访问不到这个文件的,所以没必要改名。
嗯 似的

请问能否将modules的视图文件分离出来放在themes目录下?

Aibydear阅读(99)

各位大侠,请问能否将modules的视图文件分离出来放在themes目录下?可以的话如何解决?小弟先谢谢了.

直接放到themes目录下与module同名的目录即可,例如
themes/classic/views/admin/article/create.php
可以 指定好渲染视图的路径就好

关于两表联查问题

Harryfans阅读(87)

CActiveDataProvider中的各个参数都什么意思,怎么弄都报错…

参考criteria的with和join属性,CActiveDataProvider第一参数是Model类,第二个参数是模型类对应的查询条件,一般是一个criteria实例。

《应用Yii1.1...敏捷Web开发》actionAdduser的问题

Tinasuper阅读(121)

我在添加 这个action到ProjectController类的时候   显示

Missing argument 1 for ProjectController::loadModel(), called in /home/wwwroot/trackstar/protected/controllers/ProjectController.php on line 197 and defined


public function actionAdduser() 

{

<span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">=</span><span class="php-hl-reserved" style="font-weight: bold;">new</span> <span class="php-hl-identifier" style="color: green;">ProjectUserForm</span><span class="php-hl-code" style="color: gray;">; 
</span><span class="php-hl-var" style="color: blue;">$project</span><span class="php-hl-code" style="color: gray;"> = </span><span class="php-hl-var" style="color: blue;">$this</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">loadModel</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">;</span><span class="php-hl-code"><span style="color:#ff0000;">// 这一段的loadModel() 上面的函数只有 loadModel($id),</span></span><span class="php-hl-code" style="color: gray;">
</span><span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;">//</span><span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;"> collect user input data</span>
<span class="php-hl-reserved" style="font-weight: bold;">if</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-reserved" style="font-weight: bold;">isset</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-var" style="color: blue;">$_POST</span><span class="php-hl-brackets" style="color: olive;">[</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">ProjectUserForm</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-brackets" style="color: olive;">]</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-brackets" style="color: olive;">)</span> <span class="php-hl-brackets" style="color: olive;">{</span>
    <span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">attributes</span><span class="php-hl-code" style="color: gray;">=</span><span class="php-hl-var" style="color: blue;">$_POST</span><span class="php-hl-brackets" style="color: olive;">[</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">ProjectUserForm</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-brackets" style="color: olive;">]</span><span class="php-hl-code" style="color: gray;">; 
    </span><span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">project</span><span class="php-hl-code" style="color: gray;"> = </span><span class="php-hl-var" style="color: blue;">$project</span><span class="php-hl-code" style="color: gray;">; </span><span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;">//</span><span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;"> validate user input and set a sucessfull flassh message if valid</span>
    <span class="php-hl-reserved" style="font-weight: bold;">if</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">validate</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-brackets" style="color: olive;">)</span> 
    <span class="php-hl-brackets" style="color: olive;">{</span>
        <span class="php-hl-identifier" style="color: green;">Yii</span><span class="php-hl-code" style="color: gray;">::</span><span class="php-hl-identifier" style="color: green;">app</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">user</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">setFlash</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">success</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-code" style="color: gray;">,</span><span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">username</span><span class="php-hl-code" style="color: gray;"> . </span><span class="php-hl-quotes" style="color: red;">&quot;</span><span class="php-hl-string" style="color: red;"> has been added to the project.</span><span class="php-hl-quotes" style="color: red;">&quot;</span> <span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">;
        </span><span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">=</span><span class="php-hl-reserved" style="font-weight: bold;">new</span> <span class="php-hl-identifier" style="color: green;">ProjectUserForm</span><span class="php-hl-code" style="color: gray;">;
    </span><span class="php-hl-brackets" style="color: olive;">}</span>
<span class="php-hl-brackets" style="color: olive;">}</span>
<span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;">//</span><span class="php-hl-comment" style="color: rgb(128, 128, 128); font-style: italic;"> display the add user form </span>
<span class="php-hl-var" style="color: blue;">$users</span><span class="php-hl-code" style="color: gray;"> = </span><span class="php-hl-identifier" style="color: green;">User</span><span class="php-hl-code" style="color: gray;">::</span><span class="php-hl-identifier" style="color: green;">model</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">findAll</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">; 
</span><span class="php-hl-var" style="color: blue;">$usernames</span><span class="php-hl-code" style="color: gray;">=</span><span class="php-hl-reserved" style="font-weight: bold;">array</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">; 
</span><span class="php-hl-reserved" style="font-weight: bold;">foreach</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-var" style="color: blue;">$users</span> <span class="php-hl-reserved" style="font-weight: bold;">as</span> <span class="php-hl-var" style="color: blue;">$user</span><span class="php-hl-brackets" style="color: olive;">)</span> 
<span class="php-hl-brackets" style="color: olive;">{</span>
    <span class="php-hl-var" style="color: blue;">$usernames</span><span class="php-hl-brackets" style="color: olive;">[</span><span class="php-hl-brackets" style="color: olive;">]</span><span class="php-hl-code" style="color: gray;">=</span><span class="php-hl-var" style="color: blue;">$user</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">username</span><span class="php-hl-code" style="color: gray;">;
</span><span class="php-hl-brackets" style="color: olive;">}</span>
<span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">project</span><span class="php-hl-code" style="color: gray;"> = </span><span class="php-hl-var" style="color: blue;">$project</span><span class="php-hl-code" style="color: gray;">; 
</span><span class="php-hl-var" style="color: blue;">$this</span><span class="php-hl-code" style="color: gray;">-&gt;</span><span class="php-hl-identifier" style="color: green;">render</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">adduser</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-code" style="color: gray;">,</span><span class="php-hl-reserved" style="font-weight: bold;">array</span><span class="php-hl-brackets" style="color: olive;">(</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">model</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-code" style="color: gray;">=&gt;</span><span class="php-hl-var" style="color: blue;">$form</span><span class="php-hl-code" style="color: gray;">, </span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-string" style="color: red;">usernames</span><span class="php-hl-quotes" style="color: red;">'</span><span class="php-hl-code" style="color: gray;">=&gt;</span><span class="php-hl-var" style="color: blue;">$usernames</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-brackets" style="color: olive;">)</span><span class="php-hl-code" style="color: gray;">; 

}

函数就只有这个

public function loadModel($id)
{
$model=Project::model()->findByPk($id);
if($model===null)
throw new CHttpException(404,’The requested page does not exist.’);
return $model;
}

求问应该怎么改

亲,应该这么调用:$this->loadModel($id)

登录

找回密码

注册