У меня есть 3 таблицы. программное обеспечение, разрешение и центр. Я могу установить связь между программным обеспечением и разрешениями, а также между центром и таблицей разрешений. Я хочу получить доступ к программному обеспечению конкретного центра. Например, когда я получаю доступ /centres/:id/softwares.json
, который вернет меня, как в следующем формате.
"Centre": {
"id": "1",
"name": "centre1",
"alias": "CN1""Software": [
{
"id": "1",
"name": "software1",
"description": "description1"},
{
"id": "2",
"name": "software2",
"description": "description2"},
...
]
}
public $hasMany = 'Permission';
public $hasAndBelongsToMany = array(
'Software' => array(
'className' => 'Software',
'joinTable' => 'permissions',
'foreignKey' => 'id',
'associationForeignKey' => 'software_id',
'unique' => true,
)
);
Это пример SQL, который извлекает доступные программы для определенного центра (id: 1)
SELECT s.* FROM softwares s JOIN permissions p ON p.software_id = s.id WHERE p.centre_id=1;
Задача ещё не решена.
Других решений пока нет …