0

私はここからcakephpを学んでいますコードはケーキの古いバージョンのものなので、コードの一部を更新する必要がありますビューまたはレイアウトにデータを渡すコントローラーがありますここにコントローラーがあります:

ブログコントローラー.php

<?php
class BlogController extends AppController {

  var $name = 'Blog';
  var $uses = array('Blog');
  // Used when indexing the page (http://yourdomain.com/blog/)
function index($view = null) {
    // What to do if a view is set
    if (isset($view))
    {
      //problem is here
      $this->set('article', $this->Blog->find("id = $view"));
      $this->render('article');
    }
    else
    {
      $this->set('articles', $this->Blog->find('all'));
    }
  }
}
?>

問題はこの行です$this->set('article', $this->Blog->find("id = $view"));

行を置き換えると、$this->set('article', $this->Blog->find('first'))常に最初のアイテムが表示され、何も問題が発生しません。IDを使用できるように、この行を修正するにはどうすればよいですか?

レイアウトは次のように article.ctp です

<div id="article">
<h1><?= $article['Blog']['title'] ?></h1>
<p class="date"><?= $article['Blog']['date'] ?></p>
<p class="intro"><?= $article['Blog']['introtext'] ?></p>
<p class="main"><?= $article['Blog']['maintext'] ?></p>
</div>

項目の 1 つをクリックすると表示されるエラーは次のとおりです。

Notice (8): Undefined index: id = 2 [CORE\Cake\Model\Model.php, line 2666]
4

1 に答える 1

2

おそらくこれが必要です:

    $this->set('article', $this->Blog->find('first', array('conditions' => array('Blog.id' => $view))));

参照:データの取得 - CakePHP マニュアル

于 2013-02-07T19:33:47.453 に答える