2015-10-03 5 views
1

Моих пользователи модели имеет два поля: CREATED_BY, MODIFIED_BY и я хочу для того чтобы достигнуть что-то вроде этого:ORM: ассоциированная две модели с два belongsTo (дважды)

$this->belongsTo('Users', [ 
     'foreignKey' => 'created_by', 
     'joinType'  => 'INNER', 
     'className' => 'Users', 
     'propertyName' => 'creator' 
    ]); 
    $this->belongsTo('Users', [ 
     'foreignKey' => 'modified_by', 
     'joinType'  => 'INNER', 
     'className' => 'Users', 
     'propertyName' => 'modifier' 
    ]); 

я ожидал, чтобы это работало, но только последний работает, модификатор в моем случае

+0

Как насчет 'propertyName => ['creator', 'modifier']'? Я уверен, что это сработает, но стоит попробовать. – Ray

+1

http://stackoverflow.com/questions/30412066/cakephp-3-0-cannot-get-2-items-from-1-table – ndm

+0

спасибо @Ray, но в чем польза, я хочу, чтобы два ассоциированных с двумя иностранными ключи – Ayman

ответ

1

Попробуйте это:

$this->belongsTo('Creator', [ 
     'foreignKey' => 'created_by', 
     'joinType'  => 'INNER', 
     'className' => 'Users', 
     'propertyName' => 'creator' 
    ]); 
    $this->belongsTo('Modifier', [ 
     'foreignKey' => 'modified_by', 
     'joinType'  => 'INNER', 
     'className' => 'Users', 
     'propertyName' => 'modifier' 
    ]); 

Я не знаю, как называются ваши таблицы, но я создал Creator и Modifier.