phalcon - три таблицы отношений - PullRequest
0 голосов
/ 02 июля 2018

У меня есть проект phalcon (phalconphp.com)

Я хочу создать 3 таблицы отношений. Пользователь -> user_roles <- роли </p>

Таблица пользователей: id, role_id

User_roles: id, user_id, role_id

Роли: id, код

Я сделал:

Users.php

 $this->hasMany(
            'id',
            'UserRoles',
            'user_id'
        );

UserRoles.php

$this->belongsTo(
        'user_id',
        'Users',
        'id'
    );

    $this->belongsTo(
        'role_type_id',
        'Roles',
        'id'
    );

Roles.php

$this->hasMany(
            'id',
            'UserRoles',
            'role_type_id'        
        );

И я просто хочу в моем контроллере:

$users = Users::find();

 foreach ($users as $user) {
            echo $user->id;
            echo $user->roles->code;
}

Но получите: Доступ к неопределенному свойству Users :: role

Может кто-нибудь помочь мне решить эту проблему? Справка: https://docs.phalconphp.com/en/3.3/db-models-relationships

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

@ chazecka Важное замечание о фалконовых отношениях:

Они облегчают кодирование, однако создают сумасшедшее количество запросов . Если вы заботитесь о производительности, следите за количеством запросов, которые выполняются, иногда сумма может быть не оптимальной. В этом случае вам может понадобиться использовать объединения и https://olddocs.phalconphp.com/en/3.0.1/api/Phalcon_Mvc_Model_Query_Builder.html или https://docs.phalconphp.com/zh/3.3/db-phql

0 голосов
/ 02 июля 2018

Единственная проблема была в том, что Phalcon не смог найти имена моих таблиц (хотя это был полный пример переписывания роботов).

Все, что мне нужно было сделать, это указать псевдонимы для таблиц в отношениях.

...