$message = $this->Messages->get($id, [
'contain' => ['Members']
]);
$this->set('message', $message);
$this->set('_serialize', ['message']);
<table class="vertical-table">
<tr>
<th><?= __('Member') ?></th>
<td><?= $message->has('member') ?
$this->Html->link($message->member->name,
['controller' => 'Members',
'action' => 'view', $message->member->id]) : '' ?></td>
</tr>
<tr>
<th><?= __('Id') ?></th>
<td><?= $this->Number->format($message->id) ?></td>
</tr>
</table>
<div class="row">
<h4><?= __('Title') ?></h4>
<?= $this->Text->autoParagraph(h($message->title)); ?>
</div>
<div class="row">
<h4><?= __('Comment') ?></h4>
<?= $this->Text->autoParagraph(h($message->comment)); ?>
</div>
$message->titleこのMessagesデータに関連付けられているMembersデータは、$message->memberという値に保管されています。例えば、投稿した人の名前を出力するならば、
$message->comment
$message->member->nameこんな具合に指定すれば名前を得ることができます。アソシエーションの方式は、MembersとMessagesで違います(Membersから見ればMessagesはhas many、Messagesから見ればMembersはbelongs to)が、関連するデータの扱い方はまったく同じです。インスタンスの中に、関連するモデル名のプロパティがあり、そこにその関連モデルのインスタンスが代入されているのです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
public function view($id = null) { $message = $this->Messages->get($id, [ 'contain' => ['Members'] ]); $this->set('message', $message); $this->set('_serialize', ['message']); }
<< 前へ | 次へ >> |