Jobeet -第15天:喂食
开始之前
在Jobeet的第21天,我们将组织一个“设计日”比赛,社区将不得不选择将与Jobeet捆绑的默认设计。欧宝体育平台怎么样
如果你想提交原创设计,规则很简单:你必须只用样式表和图片来设计网站。
要参与,请下载存档它包含了我们在教程中开发的主页(静态HTML文件、样式表和图像),并将您的设计提交给fabien。效力[必备。]symfony-project.com before the 21st.
《Jobeet》前情回顾
昨天,您开始开发自己的第一个symfony应用程序。ob娱乐下载现在不要停止。随着您对symfony的了解越来越多,请尝ob娱乐下载试向应用程序添加新特性,将其托管在某个地方,并与社区共享。欧宝体育平台怎么样
今天我们来谈谈完全不同的话题。
如果你正在找工作,你可能会希望新职位一发布就通知你。而且每隔一个小时查看一下网站也不太方便。为了让我们的Jobeet用户保持最新,我们今天将添加几个工作提要。
格式
symfob娱乐下载ony框架具有对格式和mime类型的原生支持。这意味着相同的模型和控制器可以根据请求的格式拥有不同的模板。默认格式是HTML,但symfony支持其他几种开箱即用的格式ob娱乐下载,例如三种
,js
,css
,json
,xml
,rdf
,或原子
.
格式可以使用setRequestFormat ()
请求对象的方法:
美元的请求->setRequestFormat(“xml”);
但大多数情况下,格式是嵌入在URL中。在这种情况下,symfonyob娱乐下载将为您设置sf_format
变量在相应的路由中使用。对于工作列表,列表URL为:
http://jobeet.localhost/frontend_dev.php/job
这个URL相当于:
http://jobeet.localhost/frontend_dev.php/job.html
类生成的路由是等价的sfPropelRouteCollection
类有sf_format
作为扩展。您可以通过运行应用:路线
任务:
提要
最新工作动态
支持不同格式就像创建不同模板一样简单。要创建Atom提要对于最新的作业,创建indexSuccess.atom.php
模板:
<!——apps/frontend/modules/job/templates/indexSuccess.atom.php——> “1.0”编码=“utf - 8”?><饲料xmlns =“http://www.w3.org/2005/Atom”>Jobeet 最新的工作 ""rel =“自我”/> ""/>Jobeet Unique id Job title ""/>唯一id <更新的>更新的><总结>工作描述总结><作者><名称>公司名称>作者>条目>提要>
模板名称
作为
超文本标记语言
是web应用程序最常用的格式,它可以从模板名称中省略。这两个indexSuccess.php
而且indexSuccess.html.php
模板是等价的,symfony使用它找到的第一个模板。ob娱乐下载为什么默认模板使用后缀
成功
?动作可以返回一个值来指示要呈现哪个模板。如果该操作没有返回任何内容,则相当于以下代码:返回sfView::成功;// == 'Success'如果你想改变后缀,只需要返回其他东西:
返回sfView::错误;// == '错误'返回“Foo”;方法也可以更改模板的名称
setTemplate ()
方法:这个美元->setTemplate(“foo”);
默认情况下,symfonob娱乐下载y将更改响应内容类型
对于所有非html格式,布局是禁用的。对于Atom提要,symfony更改ob娱乐下载内容类型
来application / atom + xml;utf - 8字符集=
.
在Jobeet页脚中,更新到提要的链接:
<!——apps/frontend/templates/layout.php——>
的内部URI与工作
列表中包含sf_format
作为变量添加。
添加一个<链接>
在布局的头部部分的标签:
<!——apps/frontend/templates/layout.php——> “替代”类型=“application / atom + xml”title =“最新的工作”href =“< ?php回声url_for(“@job ?Sf_format =原子',true) ?/>
有关链接href
属性的第二个参数使用了一个绝对URLurl_for ()
帮手。
让我们更新Atom模板头文件:
<!——apps/frontend/modules/job/templates/indexSuccess.atom.php——>Jobeet 最新工作 “< ?php回声url_for(“@job ?Sf_format =原子',true) ?rel =“自我”/> “< ?php回声url_for('@homepage', true) ?>"更新/ > < > < ?php回声函数(' % Y - % m - H % dT %: % m: %深圳', JobeetJobPeer::getLatestPost()->getCreatedAt(“U”))作者更新? > < / > < > <名称> Jobeet < /名称> < /作者> < id > < ?php回声sha1(url_for(“@job ?sf_format =原子',真正的))? > < / id >
注意U
作为一个论证getCreatedAt ()
以获取时间戳形式的日期。要获取最新文章的日期,请创建getLatestPost ()
方法:
/ / lib /模型/ JobeetJobPeer.php类JobeetJobPeer扩展BaseJobeetJobPeer{静态公共函数getLatestPost(){美元标准=新标准();自我::addActiveJobsCriteria(美元标准);返回JobeetJobPeer::doSelectOne(美元标准);}/ /……}
提要条目可以用以下代码生成:
<!——apps/frontend/modules/job/templates/indexSuccess.atom.php——><?phpforeach(美元的类别作为美元的类别):?><?phpforeach(美元的类别->getActiveJobs(sfConfig::得到(“app_max_jobs_on_homepage”))作为美元的工作):?><输入> <标题><?php回声美元的工作->getPosition()?>(<?php回声美元的工作->getLocation()?>) “< ?php回声url_for('job_show_user', $job, true) ?>"/ > < id > < ?php回声sha1(美元的工作->getId())? > < / id > <更新> < ?php回声函数(' % Y - % m - H % dT %: % m: %深圳',美元的工作->getCreatedAt(“U”))?>“xhtml”> “http://www.w3.org/1999/xhtml”><?php如果(美元的工作->getLogo()):?> .<?phpendif;?>< div ><?php回声simple_format_text(美元的工作->getDescription())?>如何申请?< / h4 > < p > < ?php回声美元的工作->getHowToApply()?>
的getHost ()
请求对象(sf_request美元
)返回当前主机,这在为公司标志创建绝对链接时非常方便。
类别提要中的最新作业
Jobeet的目标之一是帮助人们找到更有针对性的工作。因此,我们需要为每个类别提供一个提要。
首先,让我们更新类别
添加对不同格式的支持:
/ /应用程序/前端/ config /路由。Yml类别:url: /category/:slug。:sf_format类:sfPropelRoute param: { module: category, action: show, sf_format: html } options: { model: JobeetCategory, type: object } requirements: sf_format: (?:html|atom)
现在,类别
路线都会懂的超文本标记语言
而且原子
格式。更新模板中类别提要的链接:
<!——apps/frontend/modules/job/templates/indexSuccess.php——>类=“喂”> “< ?php回声url_for(“类别”,数组(“sf_subject”= >美元的类别,'sf_format' => 'atom')) ?>"提要> < / > < / div >[php]<!——apps/frontend/modules/category/templates/showSuccess.php——>.<?phpendforeach;?> 回声美元的工作->getCompany()?> 您可以使用
_list.atom.php
部分,以简化作业提要模板:<!——apps/frontend/modules/job/templates/indexSuccess.atom.php——> “1.0”编码=“utf - 8”?><饲料xmlns =“http://www.w3.org/2005/Atom”>Jobeet 最新的工作 “< ?php回声url_for(“@job ?Sf_format =原子',true) ?rel =“自我”/> “< ?php回声url_for('@homepage', true) ?>"更新/ > < > < ?php回声函数(' % Y - % m - H % dT %: % m: %深圳', JobeetJobPeer::getLatestPost()->getCreatedAt(“U”))作者更新? > < / > < > <名称> Jobeet < /名称> < /作者> < id > < ?php回声sha1(url_for(“@job ?sf_format =原子',真正的))? > < / id ><?phpforeach(美元的类别作为美元的类别):?><?phpinclude_partial(“工作/列表”,数组(“工作”= >美元的类别->getActiveJobs(sfConfig::得到(“app_max_jobs_on_homepage”))))?><?phpendforeach;?>饲料> < /最终,创建
showSuccess.atom.php
模板:<!——apps/frontend/modules/category/templates/showSuccess.atom.php——> “1.0”编码=“utf - 8”?><饲料xmlns =“http://www.w3.org/2005/Atom”> <标题> Jobeet(<?php回声美元的类别?>)最新工作 “< ?php回声url_for(“类别”,数组(“sf_subject”= >美元的类别,'sf_format' => 'atom'), true) ?>"rel =“自我”/> “< ?php回声url_for(“类别”,数组(“sf_subject”= >美元的类别),真正的)? >"更新/ > < > < ?php回声函数(' % Y - % m - H % dT %: % m: %深圳',美元的类别->getLatestPost()->getCreatedAt(“U”))作者更新? > < / > < > <名称> Jobeet < /名称> < /作者> < id > < ?php回声sha1(url_for(“类别”,数组(“sf_subject”= >美元的类别),真正的))? > < / id ><?phpinclude_partial(“工作/列表”,数组(“工作”= >美元寻呼机->getResults()))?>饲料> < /对于主作业提要,我们需要一个类别的最新作业日期:
/ / lib /模型/ JobeetCategory.php类JobeetCategory扩展BaseJobeetCategory{公共函数getLatestPost(){美元的工作=这个美元->getActiveJobs(1);返回美元的工作[0];}/ /……}明天见
与许多symfony特性一ob娱乐下载样,原生格式支持允许您毫不费力地向网站添加提要。
今天,我们提升了求职者的体验。明天,我们将看到如何通过提供Web服务来更好地展示招聘启事。
发表在#教程
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
使用simple_format_text函数
为什么?
我在indexSuccess.atom.php的第一行上用php回显修复了它