2014-04-05 3 views
0

Я пытаюсь сделать один ко многим отношений между лежаков и города Так, один зал может быть во многих городах - «KFC» => Лондон, Париж, Мадрид и etc Для этой цели я использую DataMapper, но руководство si немного запутывает, и я получаю сообщение об ошибке - Таблица 'databasename.cities_lounges' не существует, однако есть таблица под названием lounge_cities. Когда я изменить его cities_lounges это дает мне другую ошибку, как описывает cities_loungesCodeIgniter и DataMapper: Один ко многим Отношения

Вот что lounge_cities таблицу содержит: «идентификатор, lounge_id (INT, неподписанный), CITY_ID (INT, неподписанный)

Вот мой модели:

<?php 

class Lounge_model extends DataMapper 
{ 
public function __construct() 
{ 
    parent::__construct(); 
} 

var $table = 'lounges'; 

var $has_one = array('city_model'); 


    } 

<?php 

    class City_model extends DataMapper 
    { 
public function __construct() 
{ 
    parent::__construct(); 
} 

var $table = 'cities'; 

var $has_many = array('lounge_model'); 

    } 

и здесь есть функция, где я пытаюсь получить это мой контроллер:

public function id($id) 
{ 
    $lounge = new lounge_model(); 
    $lounge->where('id', $id)->get(); 

    $relationshiptest = $lounge->city_model->get(); 
    var_dump($relationshiptest); 
     } 

Вот что я последовал за этим: http://datamapper.wanwizard.eu/pages/accessingrelations.html

Может кто-нибудь помочь мне, но не указывать мне руководство, потому что мне трудно найти его понять ...? Cheers

+0

Похоже, вам нужно настроить базу данных или указать ее t o нужное место. 'Таблица 'databasename.cities_lounges' не существует' ищет вашу таблицу в базе данных под названием databasename – Chitowns24

+0

nope это не так :(Может быть, я не называю это правильным способом – Unsparing

ответ

1

У вас отношение «один ко многим», поэтому вам просто нужно добавить столбец «city_model_id» в таблицу базы данных «залов» ... Нет необходимости в таблице «lounge_cities» (которая должна иметь были «cities_lounges» в соответствии с «правилами именования таблицы):

запрессовки таблица должен быть названа с обеими имен таблиц он вступающие в алфавитном порядке, разделенный символ подчеркивания (_), например,. (source)

+0

Спасибо, мой друг! :) – Unsparing

+0

, но подождите, пока он выиграет «Не работайте снова, потому что, если салон находится во многих городах, тогда столбец city_id должен принимать более одного идентификатора для города, и это не сработает правильно? – Unsparing

+0

В этом случае вы не имеете отношения «один ко многим», а отношение «многие ко многим», которое требует таблицы отношений. Установите свои модели соответственно ($ has_many в обоих), проверьте свои соглашения об именах, и он будет работать. – Wietse

Смежные вопросы