[转]yii学习笔记

转载自: http://sjtutmz.blog.163.com/blog/static/98888660201052373741363/

1. % YiiRoot/framework/yiic webapp WebRoot/testdrive
2.默认Yii框架的URL规则是 http://hostname/index.php?r=controllerName/actionName&id=1
3. $this->render('index',array('a'=>"123"));
4.    $hostname=Yii::app()->request->userHost;
    $status=$_REQUEST['status'];
5.
     'request'=>array(
            'class'=>'CHttpRequest',
        ),
    $host=Yii::app()->request->hostInfo;
    $this->render('index',array('a'=>"123",'b'=>$host));
6.
    $name=$_POST["name"];
    $pass=$_POST["pass"];
    $this->render('result',array('a'=>$name,'b'=>$pass));
7.改变显示模板 $this->layout = 'admin';

8.php yiic shell config/main.php

9.model Aadmins
  crud Department


10. $model=Aadmins::model()->find();
    print_r($model);

11.<form action="/yemmys/yemmys/index.php?r=site/login" method="post">

12.<input name="LoginForm[username]" id="LoginForm_username" type="text" value="" />

13.$this->redirect('index.php?r=admin/manage');

14.Yii::app()->user->name

15.public function actionLogout()
   {
        Yii::app()->user->logout();
        $this->redirect(Yii::app()->homeUrl);
   }

16.<?php echo Yii::app()->request->baseUrl; ?>/css/screen.css

17.dirname(Yii::app()->BasePath) 

18.Yii::getPathOfAlias('webroot') 

19.
            array('modified','default',
              'value'=>new CDbExpression('NOW()'),
              'setOnEmpty'=>false,'on'=>'update'),
            array('created,modified','default',
              'value'=>new CDbExpression('NOW()'),
              'setOnEmpty'=>false,'on'=>'insert')
              
20. ckeditor:


21. 'viewButtonUrl'=>'Yii::app()->createUrl("/yemmysnews/view", array("id" => $data->newsid))',

22.在model里加:
    public function beforeSave()
    {
        $pass = md5($this->password);
        $this->password = $pass;
        return true;
    }

23.Yii::app()返回的是我们在入口程序中建立的应用对象。
根据这个配置。我们可以在程序的任何地方通过使用 Yii::app()->db 来获取连接到数据库的对象。


        
        Yii::log('eeeee1231123','info');
        $connection=Yii::app()->db;
        $connection->active=true;
        $command=$connection->createCommand("select `managername`,`password` from cdb_yemmysmanagers");
        $command->execute();   // a non-query SQL statement execution
        // or execute an SQL query and fetch the result set
        $reader=$command->query();
        // each $row is an array representing a row of data
        foreach($reader as $row)
        {
            Yii::log($row['password'],'info');
        }
        
        $connection->active=false;



24.Yii::log('1231123','info');

25.
array_push --  将一个或多个单元压入数组的末尾(入栈) ,
将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。


array_combine --  创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

26.yii view 弹出新窗口

<script type="text/javascript">
$(function(){  
    $("a.view").attr("target","_blank");
});  

</script>

27.  Chtml

28.<?php echo CHtml::beginForm('','post',array('enctype'=>'multipart/form-data')); ?>

29.验证码
(1)public function actions() {
    return array(
        'captcha'=> array(
            //加载外部的action class
        'class' => 'CCaptchaAction',
            //设置验证码图片背景色属性
        'backColor' => 0xffffff,
    ),
    );
}

(2)
<?php widget("CCaptcha"); ?>
(3)
class User extends CActiveRecord {
    public $verifyCode; //为User Model 设置一个新的属性
 
    ..........
 
    public function rules() {
        return array(
        .........
        array('verifyCode', 'captcha', 'on'=>'login', 'allowEmpty'=> !extension_loaded('gd')),
    );
    }
    ...........
    ...........
}

(4)
public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'index' and 'view' actions
                'actions'=>array('index','view','create','captcha'),
                'users'=>array('*'),
            ),


30.
array('email', 'unique'),

31.$this->redirect('index.php?r=controlpanel');

32.
<div class="row">
        <?php echo CHtml::activeLabelEx($model,'laberid'); ?>
        <?php
            echo CHtml::activeDropDownList($model,'laberid',CHtml::listData( Labertab::model()->findAll(), 'laberid', 'name' ), array('prompt'=>'选择类别'));
        ?>
        <?php echo CHtml::error($model,'laberid'); ?>
</div>

33.
public function beforeSave()
    {
        $pass = md5($this->password);
        $this->password = $pass;
        return true;
    }

34.
$record=User::model()->findByAttributes(array('email'=>$this->email));
                    if($record!==null)
                    {
                        //echo $record->userid;
                        Yii::app()->user->setState('userid',$record->userid);
                        //echo Yii::app()->user->getState('userid');
                    }
35.

<div class="row">
        <?php echo CHtml::activeLabelEx($model,'platformid'); ?>
        <?php
            echo CHtml::activeDropDownList($model,'platformid',CHtml::listData( Platform::model()->findAll(), 'platformid', 'name' ), $htmlOptions=array('encode' => false, $model->platformid =>array('selected'=>'selected') ));
        ?>
        <?php echo CHtml::error($model,'platformid'); ?>
    </div>
    
    <div class="row">
    <?php echo CHtml::activeDropDownList( $model, 'platformid', CHtml::listData( Platform::model()->findAll(), 'platformid', 'name' ), array( 'encode' => false, 'options' => array( $model->platformid => array('selected' => true) ) ) ); ?>

    </div>
    
36.
<?
echo CHtml::activeCheckBoxList($model, "example", CHtml::listData(Example::model()->findAll(), 'id', 'name'));
?>

37.
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        'id',
         array(           
            'name'=>'category_name',
            'value'=>'CHtml::link($data->category_name,$url)',//名称和URL
        ),

        'category_style',
        'sort_num',
        array(
            'class'=>'CButtonColumn',
        ),
    ),
    
  38.
  <?php
$this->widget('zii.widgets.grid.CGridView', array(
  'dataProvider'=>$dataProvider,
  'columns'=>array(
    'attribute1_name',
    'attribute2_name',
    array(
      'class'=>'CButtonColumn',
      'viewButtonUrl'=>'Yii::app()->createUrl("/controllername/view", array("id" => $data->model_id))',
      'deleteButtonUrl'=>'Yii::app()->createUrl("/controllername/delete", array("id" => $data->model_id))',
      'updateButtonUrl'=>'Yii::app()->createUrl("/controllername/update", array("id" => $data->model_id))',
    ),
  ),
));
?>

38.
    array(
            'class'=>'CButtonColumn',
            'deleteButtonOptions'=>array('style'=>'display:none'),
            'updateButtonOptions'=>array('style'=>'display:none'),
            'viewButtonLabel'=>'查看',
            'viewButtonUrl'=>'Yii::app()->createUrl("/adstarget/superview", array("id" => $data->id))',
        ),
39.
 array(//这个数组尝试添加自定义的按钮
                        'class'=>'CButtonColumn',
                        'buttons'=>array(
                                         'upbutton' => array(
                            'label'=>'up',     // text label of the button
                            'url'=>array("category/index"),       // a PHP expression for generating the URL of the button
                            'imageUrl'=>false,  // image URL of the button. If not set or false, a text link is used
                            'options'=>array(), // HTML options for the button tag
                            'click'=>'',     // a JS function to be invoked when the button is clicked
                            'visible'=>''   // a PHP expression for determining whether the button is visible
                        )
                
                ),
   'template'=>'{view}{update}{delete}{upbutton}',

40.
 $ckeditorurl=dirname(Yii::app()->BasePath).'/editor/ckeditor/ckeditor.php';
         $ckfinderurl=dirname(Yii::app()->BasePath).'/editor/ckfinder/ckfinder.php';
         require_once($ckeditorurl); 
         require_once($ckfinderurl);
  
         $ckeditor = new CKEditor();
         $ckeditor->basePath = '/ckeditor/';
         CKFinder::SetupCKEditor($ckeditor, '/ckfinder/');
         $ckeditor->editor('Msg[content]',$model->content);
50.
array(            // display 'author.username' using an expression
           
            //'value'=>'$data->author->username',
            //'value'=>$data->type,
            'value'=>'emailtype::getTypeName(array("num"=>$data->id))',
            //'vaule'=>'Yii::app()->user->name',
        ),

posted on 2011-05-29 21:38  DavidYanXW  阅读(483)  评论(0编辑  收藏  举报