CakePHPにおけるアソシエーション

kensuke-iizuka 5views 更新:2017年6月22日

アプリケーション内で異なるオブジェクト同士の関連を定義しているのがアソシエーションです。例えばブログでは記事は多くのコメントを持っていて、記事は一人のユーザーに属しています。

  • 1対1 : hasOne
  • 1対多 : hasMany
  • 多対1 : belongsTo
  • 多対多 : belongsToMany

アソシエーションはTableで定義します。

namespace App\Model\Table;

use Cake\ORM\Table;

class ArticlesTable extends Table
{

    public function initialize(array $config)
    {
        $this->belongsTo('Authors');
    }

}

initializeの中で下記のように定義すると

$this->belongsTo('Authors', [
    'className' => 'Publishing.Authors',
    'foreignKey' => 'authorid',
    'propertyName' => 'person'
]);

自分でカスタマイズすることも可能です。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません