本文阐述了YII框架形式的使用。分享给你供你参考。具体方法如下:

形式

当处理的形式,在Yii,通常需要以下步骤:

1。创建一个模型类,用于执行数据字段的集合。

2。创建一个响应表单提交的控制器动作。

三.在视图脚本中,创建与控制器动作相关的窗体。

1。创建一个模型

在写作前的表所需要的HTML代码,我们首先要确定来自最终用户的数据类型,和数据应符合什么规则,模型类可以用来记录这些信息,在模型的部分定义,该模型是对用户输入的验证输入验证的中心位置。

根据用户输入数据的方式,我们可以创建两种类型的模型。如果用户输入被收集、使用和丢弃,我们应该创建一个表单模型。如果用户输入的信息保存到数据库收集后,我们应该用一种积极的记录。两类模型共享相同的基类cmodel,它定义了所需的通用接口形式。

1。定义模型类

例如,它是作为表单模型创建的:

复制代码如下:类LoginForm延伸cformmodel

{

公用用户名;

公开密码;

公共记得=假美元;

}

三属性定义在LoginForm:美元美元美元的用户名,密码,和rememberme.they是用来保存用户输入的用户名和密码,以及用户是否想记住他登录的选项。因为美元记得有默认值false,相应的选项将被初始化是在登录时显示。

我们称这些成员变量的属性,不是属性(属性),是不同于普通的属性(属性),属性(特性),主要是用来存储用户的输入或数据库中的数据。

2。核查规则宣言

一旦用户提交了他的输入并填充了模型,我们需要确保用户输入在使用之前是有效的。这是通过验证用户的输入和一系列规则来实现的。我们在规则()方法中指定这些验证规则,该规则应该返回一个常规的配置数组。

复制代码如下:类LoginForm延伸cformmodel

{

公用用户名;

公开密码;

公共记得=假美元;

私人_identity美元;

公共职能规则()

{

返回的数组(

阵列('username,密码,'required '), / /用户名和密码的要求

阵列('rememberme ','boolean '), / /记得应该是一个布尔

阵列('password ','authenticate '), / /密码应该验证(验证)

);

}

公共功能验证($属性,$params)

{

美元-> _identity =新用户身份(美元->美元->用户名,密码);

如果(!这_identity美元-> ->认证())

美元-> adderror('password ','用户名或密码不正确。);

}

}

规则()返回的每个规则必须采用以下格式:

复制代码代码如下:阵列('attributelist ','validator ',在' = > 'scenariolist,…附加选项)

参数是:

AttributeList(功能列表)是一个功能列表的字符串,需要通过这一规则的验证,和每个特征的名字是由一个逗号分开;

验证(验证指定的类型进行验证);

on参数是可选的,它指定了规则应该应用到的场景列表;

附加选项值用于初始化相应的认证价值属性的数组。

二、表单更新数据的时间选择问题

的catery表和岗位表是多对多,一个中间表、关系、与catery_id和post_id

Post.php模式是有关系的

复制代码代码如下:'cids= >阵列(自::has_many,'relationships ','post_id),

There are methods in Catery.php model:

复制代码代码如下:静态公共功能getallcatery(){

返回chtml::列表数据(自::模型()-> findAll(),'id','name');

}

例如,现在我想更新一个数据。数据中有两列。假设文章ID是21,它属于两列,因此关系表中的数据应该是

复制代码代码如下:ID post_id catery_id

一千二百一十一

二千二百一十二

其中ID是流水,这篇文章的catery是1和2。该列的数据我可以通过建立AR relationship.php,

在形式_from我写:

复制代码代码如下所示:

labelex(元模型,'cid ');>

复选框(合模型,'cid,

catery::getallcatery(),数组(

风格= >显示:内联;,

分隔符=n

模板,

labeloptions= >阵列('style= >显示:内联))))

>

误差(元模型,'cid ');>



问题是,我不知道如果我想在_form肿填写数据当我更新数据时,应该选择列。

对于视图层数据解耦,抛开复选框和使用DropDownList为例:

1 = 1 = 2 = 2分类,分类,表示层(视图)可能是=选择1,= 1, 2 = 2。

至于行为,行为只是一个解决方案,稍后,你现在需要理解的是,如果你想为模型提供一个属性(比如CID),你需要考虑什么(提示:与cactiverecord地气)

希望本文有助于基于Yii框架的PHP程序设计人。