2

我是 cakePHP 新手,我正在尝试 cakePHP 1.3 book 的博客示例。我在此博客示例中正确上传了图像。数据库中的图像名称和 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'); ?>

这与所有帖子显示相同的图像。但我想用它的相关帖子设置特定的图像....

4

1 回答 1

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))

希望所有这些对您有所帮助,如果没有,请评论此帖子,以便我可以在需要时尝试扩展我的答案

于 2011-10-18T13:12:11.737 回答