类名第一个字母须大写

文章作者:w88手机版登录网络 上传时间:2019-07-03

ThinkPHP中的BUG及手艺与策:

  1. 模板中不能够采纳的竹签
    {$content} {$i}
  2. If标签
    如:
    试验后三番两次有想不到的失实, 那样,还不及直接用php
    if(…){ …?>来得块些呢.

约定:
1.兼有类库文件必须使用.class.php作为文件后缀,并且类名和文件名保持一致
2.调整器的类名以Action为后缀
3.模型的类名以Model为后缀,类名第3个字母须大写
4.数据库表名全体应用小写,

如:
数码表名: 前缀_表名
模型类名: 表名Model 注:这里的表名第二个字母要大写
创造对象: D(‘表名’) 注:这里的表名第4个字母要大写

概念调控器类
class IndexAction extends Action{
public function show(){
echo ‘那是新的 show 操作’;
}
}
下一场在浏览器里面输入

概念模型类:
class 表名Model extends Model{
[//手动定义字段[可选]
protected $fields = array(
‘id’,
‘username’,
‘email’,
‘age’,
‘_pk’=>’id’, //主键
‘_autoInc’=>true //是或不是自增
)
]
}

笔录的改换:
$User = D(“User”) // 实例化 User 对象
$User->find(1) // 查找 id 为 1 的记录
$User->name = ‘ThinkPHP’ // 把查找到的记录的称呼字段修改为 ThinkPHP
$User->save() // 保存修改的数目
更新特定字段的值
$User->setField(‘name’,'TopThink’,'id=1′)
同一能够支撑对字段的操作
$User->setField(‘score’,'(score 1)’,'id=1′)

新建记录,方法1:
$User = new UserModel() //实例化 User 对象
$User->字段名 = 字段值 //给字段赋值
$User->add() //加多记录
新建记录,方法2:
$data['字段名'] = 字段值; //给字段赋值
$User = D(‘User’); //实例化 User 对象
$User->add($data); //$insertId,Add 方法的重临值正是最新操る的主键值,能够直接获得。
新添多条记下:
$User = new UserModel()
$data[0]['name'] = ‘ThinkPHP’
$data[0]['email'] =
$data[1]['name'] = ‘流年’
$data[1]['email'] =
$User>addAll($data)

删去记录
$User->find(2)
$User->delete() // 删除查找到的记录
$User->delete(’5,6′) // 删除主键为 5、6 的数目
$User->deleteAll() // 删除查询出来的全部数据

记录查询

$User->getDbFields() //获得当前多少字段
$User->findAll(); //查找全数记录
$User->findAll(’1,3,8′) //查询主键为1,3,8的记录集
$User->count() // 获得记录数
$User->max(‘score’) // 获得用户的最大积分
$User->min(‘score’,'score>0′) // 猎取积分大于 0 的用户的细微积分
$User->avg(‘字段名’) // 获得全数记录的字段值的平均值
$User->sum(‘字段名’) // 总计字段值
$User->getN(2,’score>80′,’score desc’) // 重临符合条件的第 2 条记下
$User->getN(2,’score>80′,’score desc’) //还能取得最终第二条记下
$User->first(‘score>80′,’score desc’) //若是要查询第一条记下,还是能应用
$User->last(‘score>80′,’score desc’) // 取得最终一条记下
$User->top(5,”,’score desc’) // 取得积分最高的前 5 条记下
$User->getBy(‘name’,'liu21st’) //跟据字段的字段值来查询记录

$Model = new Model() // 实例化一个 model 对象 未有对应任何数据表
$Model->query(“select * from think_user where status=1″)

$objrs = $Model->query(“select * from think_user where status=1″) //自定义查询
$Model->execute(“update think_user set name=’thinkPHP’ where status=1″) //用于更新和写入数据的 sql 操作,重返影响的记录数

$User->startTrans() // 运转工作
$User->commit() // 提交业务
$User->rollback() // 事务回滚

模板:

$this->assign(‘name’,$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论何种变量类型都统一选拔 assign 赋值

$this->display() // 输出模版文件

批量赋值
$array['name'] = ‘thinkphp’
$array['email'] =
$array['phone'] = ”
$this->assign($array)

$this->display() // 调用 User 模块的 read 操作模版
$this->display(‘edit’) // 调用 User 模块的 edit 操作模版
$this->display(‘Member:read’) // 调用 Member 模块的 read 操作模版
$this->display() // 调用 Xp 核心的 User 模块的 edit 操作模版
$this->display(‘../Member/read.html’) // 直接钦命模版文件的姓名

模板标签:

{ } 或 {// 注释内容 } //模板注释
{$user['name']} //输出数组变量
{$user:name} //输出对象的习性

为了有利于模板定义,无论输出的模版变量是数组照旧对象,都足以用下列统一格局出口:
{$user.name}
借使是多维数组也许多层对象属性的输出,请使用下边包车型大巴概念形式:
{$user['sub']['name']}
{$user:sub:name}

接纳函数:
格式:{$varname|function1|function2=arg1,arg2,### }
说明:
{ 和 $ 符号之间不能够有空格 ,前面参数的空格就未有毛病
###意味着模板变量自己的参数地点

细叱变量
{$Think.server.script_name } //取得$_SERVER 变量
{$Think.session.session_id|md5 } // 猎取$_SESSION 变量
{$Think.get.pageNumber } //猎取$_GET 变量
{$Think.cookie.name } //猎取$_COOKIE 变量
系统常量
{$Think.const.__FILE__ }
{$Think.const.MODULE_NAME }
诡异变量 ,由 ThinkPHP 系统定义的常量
{$Think.version } //版本
{$Think.now } //现在时间

块捷输出
{:function(…)} //实践方法并出口再次来到值
{~function} //推行方法不出口
} //输出 Session 变量
{&var} //输出配置参数
{%var} //输出语言变量
{.var} //输出 GET 变量
{^var} //输出 POST 变量
{*var} //输出常量

含有外界文件
// 用变量支配要导入的模板
// 使用一个完正的公文名包罗

循环输出
iterate 还大概有其它的小名,包括 volist,resultset,sublist

模版赋值:
$User = D(‘User’)
$list = $User->findAll()
$this->assign(‘list’,$list)

模版定义:

{$vo.name}

注意 name 和 id 表示的意义
// 输出 list 的第 5~15 条记录

{$vo.name}

// 输出偶数记录

{$vo.name}

// 输出 key

{$k}.{$vo.name}

//子循环输出

{$sub.name}

Switch 标签

value1
value2
default

个中 name 属性能够动用函数以及细叱变量,举例:

admin
default

也足以对 case 的 value 属性使用变量,比方:

admin
member
default

 

这段时间一向为TP寻觅好用的在线编辑器而闹心,经过数14次尝试与修改后,终于成功地将编辑器集成到Thinkphp里面。而且能够用直白上传和ajax三种办法管理内容。为了给一些还没能成功地集成fckeditor的同侪们有的启发与援助,兹将小编的经验与体会描述如下:
使用目标:将FCKeditor编辑器集成到Thinkphp中,使用户能够在线像编辑Word同样管理将在公布的文字与图像。
运用软件与情形:Apache服务器2.0以上版本,PHP版本5.0之上,mysql5.0之上;Thinkphp版本1.5或以上,Fckeditor版本2.x。
利用步骤:
1、下载FCKeditor2.x本子,将解压后的文本夹FCKeditor复制到ThinkPHP文件夹下的Vendor目录下,以便符合THinkPHP的第三方类库引进法则。
2、修改参数:
先是,用EditPlus等软件展开FCKeditor目录下的fckeditor_php5.php文件,找到第130行。出现内容如下:

public function __construct( $instanceName )

{$this->InstanceName
= $instanceName ;
$this->BasePath= ‘   ‘ ;

$this->Width
= ‘900′;

$this->Height
= ‘400′;

$this->ToolbarSet
= ‘Default’ ;

$this->Value
=   ‘  ’;
$this->Config
= array() ;

}
public function __construct( $instanceName )

{

$this->InstanceName
= $instanceName ;

$this->BasePath
= ‘/bm/ThinkPHP/Vendor/FCKeditor/’ ;

$this->Width
= ‘900′;

$this->Height
= ‘400′;

$this->ToolbarSet
= ‘Default’ ;

$this->Value
= ”;
中间,最要害的正是将Basepath设置好。里面填写的就是fckeditor_php5.php文件相对于网址文书档案根目录(document root)的路线。其实那就是用于表征FCKeditor编辑器相对根目录的门径。举个例子服务器的文书档案根目录最下边是htdocs/或www/,项目名字为project,project项目文件夹下有Thinkphp系统文件包与项目文件包myapp。而且服务器并未有对该项目安装设想主机的话,此时的文书档案根目录仍是www/或htdocs/,那么相应是$this->BasePath=’/project/ThinPHP/Vendor/FCKeditor/’;
只要设置了设想主机,将在project变为虚构的文书档案根目录,通过某一域名能够一贯访问网址项目来讲,那么此时,
$this->BasePath=’/ThinPHP/Vendor/FCKeditor/’;
别的的参数如宽度与高度能够填或不填,若填下的话就是编辑器的暗中认可高与宽。InstanceName是编辑器所在标签的id与name,此时不用理会。别的参数也不用理会。
其次,在FCKeditoreditorfilemanagerconnectorsphp上面找到config.php文件,张开它,找到30与34行。必要改写的参数如下:$Config['Enabled'] = true ;
$Config['UserFilesPath'] = ‘    ’ ;
其间,第贰个参数应该设为true.暗中同意是true.次之个参数填写的是上传文件的不二等秘书籍,比方要彰显的图形等。我们在project目录下创制三个uploads文件夹,那么$Config['UserFilesPath'] = ‘ /project/uploads/   ‘;路线准绳与上三个basepath相同。要是project是虚构文档根目录的话,那么$Config['UserFilesPath'] = ‘ /uploads/   ‘;
3、应用程序:
比方在myapp项目中Lib目录下IndexAction.class.php调节器类中的index方法中,当访问该程序时,输出的模版网页里有form表单,必要用户输入一篇文章,那么就足以用到编辑器.代码示譬如下,只显示与fckeditor有关的代码,其余代码会略。
先是是服务器程序:
public function index()
{……//别的代码
        header("Content-Type:text/html; charset=utf-8");
        vendor("fckeditor.fckeditor");//包蕴FCKeditor类库,TP引进第三方类库的类别方法,其路线是相对于vendor目录来讲的。
        $editor= new FCKeditor();   //实例化FCKeditor对象
         $editor->Width='980';//设置编辑器实际须要的宽窄。此项省略的话,会利用私下认可的幅度。
        $editor->Height='400';//设置编辑器实际要求的中度。此项省略的话,会利用暗许的莫斯中国科学技术大学学。
        $this->Value="QQQQQQQQ";//设置编辑器伊始值。也足以是修改数据时的设定值。能够置空。
        $editor->InstanceName='comment';//设置编辑器所在表单内输入标签的id与name,即<input& gt;标签的id与name。此处假            //设为comment.此处不可省,也要维持唯一性。表单上传出服务器管理程序后,就能够通过$_POST['comment']来读取。
       $html=$editor->Createhtml();//创立在线编辑器html代码字符串,并赋值给字符串变量$html.
       $this->assign('html',$html);//将$html的值赋给模板变量$html.在模板里透过{$html}能够直接援引。
      //其余代码,蕴含输出模板。

     $this->display();

…….//其余代码,包涵输出模板。
}
说不上是呼应的html模板即index 文件。只要求在急需的地点插入编辑器就能够,其余代码与一般的<form>写法同样。
…….<!–其他html代码     –>
<div>
<form id=”commentform” name=”commentform” action=””>//action里填充表单管理程序,如’__APP__/Index/check’。  指的是IndexAction类下的check()方法来拍卖提交的表单数据。
<table style=”width:100%;”>
<tr>
<td style=”text-align:left;”>加多新议论:
</td>
</tr>
……//其余表单填写项
<tr>
<td > {$html}</td>
</tr>
<tr>
<td><input type=”submit” value=”提交商议” >
</td>
</tr>
</table>
</form>
</div>
到那边, 已经得以用了。在表单管理程序里像一般管理表单成分那样就行。可是,有时项目移植后,上传的图形等链接路线会被错误编写翻译,乃至不能够科学突显图片等东西。经常是双引号深入分析错误,作者还不曾搞定。要想不失误的话,能够接纳ajax的主意管理表单数据。然而在进行ajax管理之前,要先用一段js代码将编辑器中的值赋给表单中 name是instacename的值的表单成分。比方,本项示例中要用ajax对表单进行管理的话,index模板文件中必须在表单管理前运营的一段 js代码为:
…….//其他js代码
var  editor=FCKeditorAPI.GetInstance(’comment’);//comment是安装的instanceName值.
document.commentform.comment.value=editor.EditorDocument.body.innerHTML; //将编辑器中内容处理后的源代码                                                                                                               //赋值给commentform表单的comment 属性成分值。
……//其他js代码
注:个人以为xajax相比较不利,只须求将主要精力花在后台程序上。小编也是用xajax进行数量管理的。前台代码很简短


本文由w88手机版登录-www.w88zhan.com-优德w88app官方登录发布于w88手机版登录网络,转载请注明出处:类名第一个字母须大写

关键词: