私はCakePHP(バージョン3を使用)を初めて使用しています。私はCakeのブログチュートリアルを完了し、いくつかのカスタマイズを実験してきました。私が困惑しているのは、記事テーブルにカテゴリ列を追加することです。カテゴリIDを追加することはできますが、カテゴリ名が好きです。CakePHP:ビューに関連するデータを表示するために外部キーを使用する
Iは設定 "属する" 記事モデルに関係:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->table('articles');
$this->displayField('title');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Categories', [
'foreignKey' => 'category_id',
]);
}
Iはまた、記事のコントローラにおけるカテゴリのセット()メソッドを使用した:
public function index()
{
$articles = $this->paginate($this->Articles);
$this->set(compact('articles'));
$this->set('_serialize', ['articles']);
$this->set(compact('categories'));
}
私の記事のインデックスビューは次のとおりです。
<?php foreach ($articles as $article): ?>
<tr>
<td>
<?= $article->category_id ?>
</td>
<td>...
"$ article-> category_id"をいくつかの異なるものに置き換えようとしましたが、成功しませんでした。私の最高の推測は次の通りでした:
$article['Categories']['id']
それはちょうど空の列を残します。私は間違って何をしていますか?
P.S.
How to find field through foreign key in cakephp3.x.x?
あなたは、インデックス関数内$記事のデバッグ値を表示することができますか?デバッグ($ articles)を試してください。どのようにそこに来るのかを投稿します。 –
@Jacekは、この場合にそれを行う方法を示しています。 @Manoharは、このタイプの問題をどのように解決するかについてのヒントを提供しています。 'debug'と' pr'を親友にしてください! –
ありがとう、ManoharとGreg!後見では明らかですが、デバッグ機能を使用することはありませんでした。私のように、いくつかのケーキデバッグ知識から恩恵を受ける可能性があり、ここに便利なリンクだ、誰のために: http://book.cakephp.org/3.0/en/development/debugging.html –