Как соединить две таблицы, используя книжную полку и mysql в Nodejs - PullRequest
0 голосов
/ 05 января 2019

Попытка извлечь данные из двух таблиц, используя Bookshelf и mysql, но данные поступают только из первой таблицы

------- Модель клиники здесь --------------

import bookshelf from '../config/bookshelf';
import Clinic_time from '../models/clinic_time.model';
/**
 * Clinic model.
 */
class Clinic extends bookshelf.Model {
    get tableName() {
        return 'clinics';
    }

    get hasTimestamps() {
        return true;
    }

    Clinic_time() {
        return this.hasMany(Clinic_time,'clinic_id');
    }

}

export default Clinic;

----------------------------------------------------------------------
import bookshelf from '../config/bookshelf';
import Clinic from '../models/clinic.model';
/**
 * Clinic_time model.
 */

------- Модель Clinic_time здесь --------------

class Clinic_time extends bookshelf.Model {
    get tableName() {
        return 'clinic_times';
    }

    get hasTimestamps() {
        return false;
    }

    Clinic() {
        return this.belongsTo(Clinic,'id');
    }
}

export default Clinic_time;

------- Диспетчер клиники здесь --------------

export function findById(req, res) {

    Clinic.forge({id: req.params.id})
    .fetch({withRelated: [Clinic_time]})
    .then(clinic => {
        console.log(clinic);
        if (!clinic) {

            res.status(HttpStatus.NOT_FOUND).json({
                error: true, data: {}
            });
        }
        else {
            res.json({
                error: false,
                data: clinic.toJSON()
            });
        }
     })
     .catch(err => res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({
         error: err
     })
  );
}

в ответе контроллера только из таблицы Clinics, данные из таблицы clinic_times отсутствуют. но мне нужно из обеих таблиц одновременно.

...