每一个控制器之中创建相对应的方法,如下图
其中在本项目之中,由于是商城项目,所以在每一个对应的控制器上面,创建相对应的add(添加),edit(编辑),lst(展示),这三个方法,并且创建相对应的html的页面。
下一步,为了实现数据库的搜索,排序还有展示出来的翻页功能,我们再一次在商品的模型之中创建了search方法
在这里说明一下上文所说的那个钩子函数便是在模型之中写入的,可以说TP3.2框架之中,大部分的方法都是通过写入模型之中,然后来实现的,而控制器之中的方法在一般的情况下是大致雷同的,还有一个就是插入数据库的钩子方法,这两个一般是要使用引用传递的。
然后现在说回那一个search方法,那个方法就是让数据库里面的数据可以有序的展示在我们的面前,而其翻页功能则是使用这个框架里面有的类Page,这个便是翻页类,下图便是具体用法
然后最终那一个search方法便是套入相对应的模板,最终效果如下图。
随后便是将每一个方法相对应的页面模板放到相对应的文件夹里面,表单提交的方式我们这里为了方便,采用GET方式,并且提交的 目的地也是使用TP3.2自带的常量,例如__ACTION__(传递自身,但是不包含参数),__SELF__(传递自身,包括参数)。
接下来,为了让search方法里面相对应的条件生效 ,和立即生效,便是修改对应模板里面的表单。
其中排序方式比较特殊,属于立即生效的类型,所以 便使用相对应的JavaScript代码,使其能够直接提交。最后便是在商品模型之中写入相对应的规则。
这样便是完成了对应的add方法了 ,接下里便开始建立相对应的edit方法,而在这里便是如同我们所说的,控制器的方法大部分是雷同的,所以我们便直接复制了在同一个控制器下的add方法来使用,并且稍作修改。
其中编辑和添加最大的差别便是在于二者表单上面的不同,编辑表单是要取出相对应要编辑的数据,将其修改,并且覆盖到相对应的数据库之上,而添加一开始则是完全清空,将数据添加进去。
如上图,将他们一一打印出来,而在TP3.2框架里面是可以使用类似的省略风格的,这一些都是可以在config.php这一个配置文件里面,将其修改,而在这里我们将使用原生态的风格。
而在修改数据的同时,也要将相对应的数据库内容和图片这一类的数据修改,数据库修改便是写在控制器的edit方法之中,而图片这一类资源的修改便是写在钩子函数之中,这里我便使用了_before_update()这个方法。
其中都使用了框架之中自带的类,图片类和上传文件的类。
有了编辑,添加,自然就会有删除,在这里,我便在展示的页面里面添加了一个删除的按钮,并且让其自动跳转到对应的删除方法,结束之后便进行提示,最后在跳转回展示页面,这里便再一次使用了字母函数U(),这一个链接用的函数。
并且在删除之后,将图片这一类的资源一并删除,而在这里我们也使用了相对应的钩子函数
再大致上进行修改了之后,便大致完成了一个页面在数据库之上的CRUD操作,接下来,因为一般一个项目都会有大量相同的部分,例如导航栏,商城LOGO,页头页尾等等,所以在这里我们便使用了布局规划页面,将共同的部分写入一个文件,方便日后的维护。
紧接着便在要使用的页面之中使用layout标间引入布局文件,并且将对应的title这一类的属性,写成一个变量,方便在相对应的控制器方法之中写入。如下图
然后基于上面的那一种想法,由于一个商城项目需要太多的图片展示。所以我们会将显示图片的方法和相对应的配置写入相对应 的文件之中,如下图。
这便是大致完成了一个商品控制器,模型,视图大致上的配置。随后便开始下一张表对应的控制器,模型,视图的编辑。在这里我使用了一个大神配置的GII代码。至于GII是什么,GII是一种方便生成需要的数据库操作代码而编写出来的小工具,而这一种东西貌似只有YII框架之中有自带,其他框架都要自行编写。
第二天的代码编写结束