电脑安全

您当前的位置:主页 > 电脑安全 >

CakePHP 中文教程3-网络编程

来源:[db:来源]标题:   宋体    编辑:电脑技术全能网 时间:2019-09-21 12:23

原标题:CakePHP 中文教程3-网络编程
   第五章 Scaffolding (脚手架?)Scaffolding是一个很棒的道路,使得晚期开辟的局部web利用可能运转起来。晚期的数据库形式是不稳固的,很轻易变更。Scaffolding有个降落趋向:web顺序员仇恨创立当前能够基本用不到的forms。为了增加顺序员的这类反复休息, Cake中包括了Scaffolding。Scaffolding剖析数据库,创立一些尺度的应用add、delete、和edit按钮的lists,创立输出的forms,以及检查数据库中一个item的尺度views。为了在顺序中的controller中增加Scaffolding,须要增加$scaffold变量:留神save操纵是怎样安排在一个前提语句中:假如你试图保留数据到model中,cake主动实验确数据准确(依据你供给的规矩)。能够检查第十章懂得更多对于准确规矩(validation).假如不想检查准确性间接保留数据,应用save($data,false); 其余有效的保留方式:●savaFieldId($name,$value) ○保留一个单field的值●getLastInsertID()○前往近来创立记载的ID1.4 Model的Callbacks 在咱们濒临0.10.x终极版的时间,咱们增加了一些model的回调函数,同意用户可能逻辑上静静的在model操纵前或操纵后履行。为了在利用中取得这类方式,在model中应用供给的参数,重载上面的这些方式●beforeFind($conditions)○这个回调函数在一个查问操纵开端之前履行。将查问前的操纵逻辑放到这个方式外面。当你在model中重写(override)这个方式时,当你想要find操纵履行时间前往true,当你想要履行中断时间前往false●afterFind($results)○应用这个回调函数能够修正从find操纵中前往的成果,或许完成其余任何的find后逻辑。这个函数的参数是model的find操纵的成果,前往的是修正后的成果。●beforeSave()○在这个函数中安排任何保留前的逻辑。假如你像保留操纵履行则前往true,不然前往false●afterSave() ○安排任何你想要在保留后履行的代码在这个回调函数中●beforeDelete() ○安排删除前的逻辑代码。想要删除操纵履行则前往true,不然前往false●afterDelete() ○安排任何你想要在删除后履行的代码在这个回调函数中2. Model 变量 当你创立你的models时间,你能够设置一些特别的变量,来取得对Cake函数的应用。●$primaryKey○假如这个model关系到一个数据库的table,并且数据库的主键并不是id,那末应用这个变量来告知Cake主键的名字●$transactional○告知Cake该model能否支撑传输(举例 begin/commit/rolback),设置为boolea值。●$useTable○假如你想应用的数据库的table并不是model名的单数情势,并且你也不想转变table名,设置这个变量为table名●$validate ○确认通报给model的数据能否准确的一个数组。检查第十章●$useDbConfig○还记得数据库设置中,你能够在/app/config/database.php文件中设置么?应用这个变量能够交流他们classCategoriesControllerextendsAppController{var$scaffold;}无关Scaffold,要留神一个主要的成绩: Scaffold冀望每个以_id开头的filed name是一个外键而且指向一个table,table的称号和_id后方的一样(只不外是小写的)。以是,举个例子来讲,假如你嵌套了分类,你最好有个列叫做parent_id。在这个版本中,最好可能定名为parentid.一样,在表中有一个外键(比方,titles table有个category_id),而且你曾经适合的联合到models(检查6.2懂得联合),在show/edit/newd的views中,抉择的表将会和外键的表(category)一同主动的表示进去(原文:a select box will be automatically populated with the rows from the foreign table (category) in the show/edit/new views.)。在foreign model中设置$displayField来决议foreign中哪些field会被表现。持续咱们的例子,category有个题目classTitleextendsAppModel{var$displayField=''title'';}

上一篇:Zend Framework入门指引-网络编程

下一篇:没有了