我是cakePHP的新手,我正在讨论cakePHP 1.3书的博客示例。 我在这个博客示例中正确上传了图像。数据库中的图像名称和DOCUMENT_ROOT / ....中的图像正确 但是现在我想在我的博客中用相关的帖子显示图像。
我正在使用此代码进行图片上传...
function add() {
if (!empty($this->data)) {
if(isset($this->data["Image"]["image"]["name"])){
$file = new File($this->data["Image"]["image"]["name"]);
$ext = $file->ext();
if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') {
$this->Session->setFlash('You may only upload image files.');
}else{
if(move_uploaded_file($this->data["Image"]["image"] ["tmp_name"],$_SERVER["DOCUMENT_ROOT"]."test_om/blog/app/webroot/img/upload_image/"
. $this->data["Image"]["image"]["name"]) == true){
$this->data["Post"]["image"] = $this->data["Image"]["image"]["name"];
}
$this->Post->save($this->data);
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
}
}
}
}
我正在显示此代码的图像
<?php echo $this->Html->image('/img/upload_image/1.gif'); ?>
这显示了与所有帖子相同的图像。 但我想用相关的帖子设置特定的图像......
答案 0 :(得分:1)
如果您确定所有内容都正确(在数据库和文件中应该是这样),您应该在视图中使用类似的内容。
<?php echo $this->Html->image($this->data['Post']['image']); ?>
这假设您是以教程中描述的方式将数据从控制器传递到视图视图:)
如果是索引视图,你应该有一个包含所有帖子信息的变量帖子,并且在视图中你将像foreach一样循环($ post as $ post)。假设你的观点应该是这样的:
<?php echo $this->Html->image($post['Post']['image']); ?>
建议:使用调试工具包(cakephp插件),这样你就可以看到传递的变量和结构(如pr($ variable))
希望所有这些可以帮助你,如果没有,请评论这篇文章,以便我可以尝试扩展我的答案,如果需要