黑马程序员技术交流社区

标题: 【上海校区】CAKEPHP脚手架Scaffolding [打印本页]

作者: 梦缠绕的时候    时间: 2019-1-28 10:52
标题: 【上海校区】CAKEPHP脚手架Scaffolding
脚手架(Scaffolding)第一节Cake的Scaffolding非常的优美并且酷毙了
它非常酷,你会想在你的应用中应用它。现在,我们都认为它非常的酷,但是脚手架是……哦,……它仅仅是一个脚手架。在项目的开始他能够快速的为你的项目创造原型。这也就是说他不是很灵活。所以,如果你想真的自定义你的业务逻辑和试图(views),那么是时候放下脚手架,写一些代码了。脚手架是在开发 web应用开始阶段,获得早期版本的非常好的方式。早期的数据库定义会时常发生变化,脚手架非常适合早期的设计过程。一个web开发人员非常讨厌创佳一些不会真正使用的表单,脚手架可以减少这些表单的创建。为了减少开发人员的变化,Cake提供了脚手架。脚手架分析数据库中的表,为数据库的每一条记录创建标准列表的增加,删除和编辑按钮,标准的编辑表单和标准的视图(view)。为应用添加脚手架只需要在controller中添加$scaffold变量:

class CategoriesController extends AppController
{
var $scaffold;
}
?>
关于脚手架要注意非常重要的一条:它假设以 _id 结尾的字段为外键,并且_id前是外键表的名称。例如,有一个嵌套的类别,你可能有一个列,列名叫parent_id。当他发布,他会调用他的parentid。同样,当你有一个外键在表中(例如titles表中有category_id),他会关联一个正确的model(参见《理解关联》6.2),一个查询会自动从外键表对应的model中组装结果。title类中代码如下:

class Title extends AppModel
{
var $name = ‘Title’;
var $displayField = ‘title’;
}
?>

第二节自定义脚手架视图
如果你想脚手架有一些不同,你可以自己创建他们。我们仍然不建议在成型的产品中使用这中技术,但是这样的定制对于原型的迭代非常有效。
如果你想改变脚手架的视图,你需要自己提供:
为单个的Controller定制视图在下面这些地方为PostsController定制脚手架视图:
/app/views/posts/scaffold/index.scaffold.thtml
/app/views/posts/scaffold/show.scaffold.thtml
/app/views/posts/scaffold/edit.scaffold.thtml
/app/views/posts/scaffold/new.scaffold.thtml
为整个应用定制脚手架视图在下面这些地方为整个应用定制脚手架视图:
/app/views/scaffold/index.scaffold.thtml
/app/views/scaffold/show.scaffold.thtml
/app/views/scaffold/edit.scaffold.thtml
/app/views/scaffold/new.scaffold.thtml
如果你想自己定义controller的逻辑,那么是时候让从脚手架上下来,自己创建他们了。
有一个特性可能会非常有用,那就是Cake的代码生成器:Bake。Bake可以生为脚手架生成一个代码版本,然后你可以修改这些代码,按照需求去定制你的应用。





作者: 不二晨    时间: 2019-2-14 14:41
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2