Php 如何添加一个“;最新事件/最新更新”;使用Symfony 1.4构建的网站的一节?
我正在用symfony1.4开发一个网站。用户上传照片,照片保存在数据库中 现在在主页上,我有一些内容,我想有一个部分,显示最近上传的照片。我不确定做这件事的最好方法是什么。你能给我指一下正确的方向吗 我能想到的唯一方法是让Php 如何添加一个“;最新事件/最新更新”;使用Symfony 1.4构建的网站的一节?,php,model-view-controller,symfony1,doctrine,symfony-1.4,Php,Model View Controller,Symfony1,Doctrine,Symfony 1.4,我正在用symfony1.4开发一个网站。用户上传照片,照片保存在数据库中 现在在主页上,我有一些内容,我想有一个部分,显示最近上传的照片。我不确定做这件事的最好方法是什么。你能给我指一下正确的方向吗 我能想到的唯一方法是让$sf_content保留主要内容(来自应用程序/模块),对于最近的上传,使用layout.phpdo database access+business logic+rendering,但这将违反MVC,并且每次用户浏览网站时都会涉及大量数据库访问 可以改进吗?您可以使用组件
$sf_content
保留主要内容(来自应用程序/模块),对于最近的上传,使用layout.php
do database access+business logic+rendering,但这将违反MVC,并且每次用户浏览网站时都会涉及大量数据库访问
可以改进吗?您可以使用组件 apps/yourapp/modules/yourmodule/actions/components.class.php
class yourmodulenameComponents extends sfComponents {
public function executeRfoto() {
$this->photos = Doctrine_Core::getTable('Photo') ->getRecentPhotos();
}
foreach ($photos as $photo){
// Make some stuff
}
在模型中:
public function getRecentPhotos()
{
$q = $this->createQuery('a')
->addORDERBY('DESC');
return $q->execute();
}
在你的apps/yourapp/modules/yourmodule/themplates/\u rfoto.php中
class yourmodulenameComponents extends sfComponents {
public function executeRfoto() {
$this->photos = Doctrine_Core::getTable('Photo') ->getRecentPhotos();
}
foreach ($photos as $photo){
// Make some stuff
}
在layout.php或其他您想要放置照片的地方:
<?php include_component('yourmodule' ,'rfoto')?>
感谢您的回复,但这会减少数据库访问量吗?我认为这种方式是symfony方式,在您的情况下,您有非常简单的查询(从一个表中获取10或20个最后的图像),我认为在您的情况下,不会有一些关键负载。实际情况不同。图像上传只是它的一个简单版本。那么有没有更好的方法呢?你也可以启用APC,你可以在这里阅读。你的项目中每小时有多少用户?不多。10-20左右。所以我想这不会是个问题。我已经在用APC了。