BoyLee关于YII基础视频教程备注

来源:互联网 发布:js中的unshift 编辑:程序博客网 时间:2024/05/17 09:33

看完一遍,感觉比较基础,适合对YII不了解的用户观看。解决硬盘空间紧张问题,看完一遍将删除,特在此记录每集大概内容。未做详细说明,旨在方便正在学习YII朋友在未观看视频时,对视频中的内容有个大概了解。

前面视频讲了1、创建WEBAPP2、通过IDE创建项目,包含YII Framework目录-> 自动提示功能3、修改配置main.php连接数据库脚手架GIISQL详情显示在WEB FOOTER4、Model Generator、Controller Generator5、关于模块的创建 Module Generator---------------------------------------------------------------------------------------3_5_1_userSystem.mov---------------------------------------------------------------------------------------主要讲登陆。由系统默认的admin/demo登陆 改为 通过数据库用户表来登陆更改了components/UserIdentity.php中的authenticate方法通过后台添加帐号。在添加帐号时将密码进行md5加密,这里用到了重写beforeSave()方法---------------------------------------------------------------------------------------3_5_2_newsBasic.mov---------------------------------------------------------------------------------------主要讲解通过admin模块添加新闻的内容1、将type和status显示为下拉菜单。并设置下拉菜单的默认值。2、News模型中的rules方法中的验证规则3、去掉该由系统生成的表单,如创建时间,更新时间,创建人员ID,更新人员ID。并将这些通过系统来处理。重写beforeSave()方法public function getNewsTypeList(){//$newsType=NewsType::model()->findAll();等同于下面一行$newsType=self::model()->findAll();//注意findAll中不加参数的意义。读取全部数据。return CHtml::listData($newsType, 'id', 'news_type_name');}·CHtml::listData的使用·form->dropDownList的使用---------------------------------------------------------------------------------------3_5_3_extension_ckeditor.mov---------------------------------------------------------------------------------------主要完善上一集中新闻发布系统中的新闻内容(textarea),这一集主要讲述由CKeditor插件的使用。将CKkceditor扩展解压后复制到application.extensions目录下 $this->widget('application.extensions.editor.CKkceditor',array(    "model"=>$model,                # Data-Model    "attribute"=>'news_content',         # Attribute in the Data-Model    "height"=>'300px',    "width"=>'80%',"filespath"=>Yii::app()->basePath."/../up/","filesurl"=>Yii::app()->baseUrl."/up/",) );---------------------------------------------------------------------------------------3_5_4_fk_relation.mov---------------------------------------------------------------------------------------对文章列表中的处理:默认是Type和Status显示的是数字,现在要将它修改为对应的名称。有两种方法:本集主要讲解通过模型中的relation方法实现以前是通过自定义方法实现,如下模型中代码:public function getNewsTypeName($id){//$newsType=self::model()->find('id=:id',array(':id'=>$id));$newsType=self::model()->findByAttributes(array('id'=>$id));return $newsType->news_type_name;}视图中代码:<?php echo CHtml::encode(NewsType::model()->getNewsTypeName($data->type_id)); ?>---------------------------------------------------------------------------------------3_6_CGridView_security.mov---------------------------------------------------------------------------------------admin/news/admin关于CGridView相关知识·模型News的attributeLabels方法或者直接在视图中的widget中定义'columns'=array(  ...  array('name'=>'news_title','type'=>'raw','header'=>'在这里定义',...在API中查找:CDataColumn查看详情。·CHtml:link()方法·CHtml::encode()方法及意义yiiblog.info@gmail.com---------------------------------------------------------------------------------------4_1_1_view.mov---------------------------------------------------------------------------------------创建了一个控制器:viewAndTheme,以该控制器进一步讲解YII的view结构。YII的view是三层结构$this->render('index');这里的视图index.php内容是“最里层”上一层:column1.php上一层:main.php了解view的三层结构并了解他们之间的关系。---------------------------------------------------------------------------------------4_1_2_view_adv.mov---------------------------------------------------------------------------------------YII view能做什么?http://csstemplatesmarket.com 模板站从该网站下载个模板,利用view三层结构显示。并模拟数据来演示过程。$this->render('newPage',array('newsData'=>$newsData,));newPage.php视图为最里层。那如何在最外层显示$newsData的数据呢?如果在最外层print_r($NewsData);则显示PHP ErrorUndefined variable: newsData解决办法:利用OO特性解决在控制器中定义:public $navData='';$this->navData=$NewsData;在最外层用$this->navData来获取数据。---------------------------------------------------------------------------------------4_1_3_newTheme.mov---------------------------------------------------------------------------------------主题的使用1、配置文件'theme'=>'YiiBlog_2012',如果没有对应主题怎么办?YII的流程(没有->默认->YII总有个备用方案,除非连最后备用方案都被删除了)2、主题手工建themes--YiiBlog_2012----css----images----js----view--------viewAndTheme------------newTheme.php--------layout------------columnYiiBlog2012.php------------mainYiiBlog2012.php3、知识点echo Yii:app()->baseUrl;/yii_go_part2echo Yii:app()->theme->baseUrl;/yii_go_part2/themes/YiiBlog_20124、流程:a.YII首先扫描themes文件夹。b.有没有main.php配置中配置的主题目录。如果有继续在里面找,没有则在protected/view目录下找在建主题YiiBlog_2013的时候,并没有手工建上述目录及类似文件。而是直接在protected/view目录及layouts目录下建的。当没有找到对应主题,则在此目录下找。5、boylee视频中:如果theme不存在,在项目开发中,在原view下备份主题相同文件。-->有这必要?感觉这样有点混乱。---------------------------------------------------------------------------------------4_2_1_basic_upload.mov---------------------------------------------------------------------------------------官网资料:http://www.yiiframework.com/wiki/2/how-to-upload-a-file-using-a-model步骤:1、新建controller。controller name:upload2、新建Item模型,具体代码看上面链接内容class Item extends CActiveRecord(需连接数据库,而数据中又没有Item表,导致执行失败)class Item extends CFormModel(只收集信息,不提交到数据库)3、新建view<?php echo CHtml::form('','post',array('enctype'=>'multipart/form-data')); ?><?php echo CHtml::activeFileField($model, 'image'); ?><?php echo CHtml::submitButton('SubMit'); ?><?php echo CHtml::endForm(); ?>4、$model->image=CUploadFile::getInstanceByName('Item[image]');或$model->image=CUploadFile::getInstance($model,'image');5、$model->attributes=$_POST['item'];...$imageName='aaa.jpg';$model->image=$imageName;if($model->save()){    echo 'success';}6、如何对上传的图片进行验证?if($model->validate(array('image'))){    $model->image->saveAs(Yii::app()->basePath.'/../up/'.$imageName);}else{    print_r($model->errors);    exit;}---------------------------------------------------------------------------------------basic.mov---------------------------------------------------------------------------------------非常基础,对YII完全不了解的童鞋观看。最后在修改“面包xue”的home链接时,如何改为TelBook链接中的页。办法是在main.php配置文件中增加配置项:'defaultController'=>'telBook',表示默认条件下打开的控制器。这里为执行telBook控制器的index方法。或写为:'defaultController'=>'telBook/index',---------------------------------------------------------------------------------------4_2_2_adv_ajax_upload.mov---------------------------------------------------------------------------------------1、https://github.com/blueimp/jQuery-File-Upload/wiki