0
1)idが設定されていないか、idが間違っているときにエラーを発生させたい。 2)idが設定されているがデータベースにないときにエラーを発生させたい。 私は間違ったIDを入れたときに何も表示されませんか?私はエラーメッセージを表示することを期待しました。cakephp何も表示されない
ItemController.php:テンプレートから
<?php
/**
* Created by PhpStorm.
* User: Marian39
* Date: 11/17/2016
* Time: 8:07 PM
*/
namespace App\Controller;
use Cake\Network\Exception\NotFoundException;
use Cake\Datasource\Exception\RecordNotFoundException;
class ItemsController extends AppController
{
public function view($id = null)
{
if(!$id)
{
throw new NotFoundException(__("id is not set or wrong"));
}
$data= $this->Items->findById($id);
$display = $this->Items->get($id);
try {
$display= $this->Items->get($id);
}
catch (RecordNotFoundException $e) {
//no code need
}
$this->set('items', $data);
$this->set('error', $display);
}
public function index()
{
$data = $this->Items->find('all', array('order'=>'year'));
$count = $this->Items->find()->count();
$info = array('items'=>$data,
'count' => $count);
$this->set($info);
// $this->set('items', $data);
// $this->set('count', $count);
//this->set('color', 'blue');
}
}
?>
view.ctp:は
<?php foreach($items as $item): ?>
<div>
<h2>
<?php echo h($item['title']);?>
<?php echo h($item['year']);?>
</h2>
<p>
Length: <?php echo h($item['length']);?>
</p>
<div>
<?php echo h($item['description']);?>
</div>
</div>
<?php endforeach; ?>
こんにちは!コードをクラスの上に置きます。エラー:オブジェクトコンテキストにないときに$ thisを使用しますか? どのような変更を具体的に行う必要がありますか?私はあまりにもよく理解していませんでした。私は初心者です。 –
次の行を置くべきです: 'use Cake \ Datasource \ Exception \ RecordNotFoundException;クラスが開始する前に ' ' 'public function index()'の中にtry catchブロックを置いてください –
助けてくれてありがとう!私は自分のコードを修正しました。これはこのようにしか動作しません。もし大丈夫なら教えてください。 –