2

私はcakePHPを初めて使用し、cakePHP1.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'); ?>

これは、すべての投稿で同じ画像を示しています。しかし、私はそれに関連する投稿で特定の画像を設定したいと思っています...。

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 に答える