現在、チュートリアルに従おうとしていますが、if ステートメントを使用するセクションに到達しました。このセクションでは、フォルダーに保存したダウンロード可能なデータをすべて表示します。
Undefined variable: i
しかし、私が抱えている問題は if ステートメントにあります。この if ステートメントに ..があると言い続けます。
<p>Welcome <?php print $this->Session->read('Auth.User.name');
echo ' ';
echo $this->Html->link('Logout', array('controller' => 'Users', 'action' => 'logout'));?> </p>
<dt> <?php if ($i % 2 == 0) echo $class; ?> <?php __('Download'); ?></dt>
<dd> <?php if ($i++ % 2 == 0) echo $class; ?>
<?php echo $this->Html->link(__('Download', true), array('action' => 'download', $upload['Upload']['uploadID'])); ?>
</dd>
コントローラーのダウンロード機能は次のとおりです。
function download($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid id for upload', true));
$this->redirect(array('action' => 'view'));
}
$this->Upload->bindModel(array('hasOne' => array('UploadsUser')));
$upload = $this->Upload->find('first', array(
'conditions' => array(
'Upload.uploadID' => $id,
'OR' => array(),
)
));
if (!$upload)
{
$this->Session->setFlash(__('Invalid id for upload', true));
$this->redirect(array('action' => 'view'));
}
$this->view = 'media';
$filename = $upload['Upload']['fileName'];
$this->set(array(
'id' => $upload['Upload']['uploadID'],
'name' => substr($filename, 0, strrpos($filename, '.')),
'extension' => substr(strrchr($filename, '.'), 1),
'path' => APP . 'uploads' . DS,
'download' => true,
));
}
また、if ステートメントでは =、==、または === である必要があることも認識していますが、このチュートリアルでは何らかの理由で % ? を使用しています。なぜそれが使われているのか説明していただければ幸いです。
ありがとう