у меня 3 таблицы. Events
, Events_join
, Customers
. в event_join
у меня есть только идентификаторы клиентов, которые присоединяются к событию. в настоящее время я выбираю события с массивом events_join
, используя эту структуру моей БД:
Структура таблицы для таблицы my_events
CREATE TABLE IF NOT EXISTS `my_events` (
`id` int(10) unsigned NOT NULL,
`userid` int(11) NOT NULL,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`sdes` varchar(256) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`pic` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
`sdate` date NOT NULL DEFAULT '1970-01-01',
`edate` date NOT NULL DEFAULT '1970-01-01',
`country` int(11) NOT NULL,
`city` int(11) NOT NULL,
`location` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`url` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`des` varchar(10000) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`cat` int(10) unsigned NOT NULL DEFAULT '1',
`deleted_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`timezone` varchar(90) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Структура таблицы для таблица customers
CREATE TABLE IF NOT EXISTS `customers` (
`id` int(10) unsigned NOT NULL,
`title` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`firstname` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`lastname` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`phone` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
`country` int(10) unsigned NOT NULL DEFAULT '1',
`city` int(10) DEFAULT NULL,
`company` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`pic` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`level` int(10) unsigned NOT NULL DEFAULT '1',
`status` tinyint(4) NOT NULL DEFAULT '1',
`deleted_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Структура таблицы для таблицы events_join
CREATE TABLE IF NOT EXISTS `events_join` (
`id` int(11) NOT NULL,
`userid` int(11) NOT NULL,
`eventid` int(11) NOT NULL,
`sdate` date NOT NULL,
`edate` date NOT NULL,
`date` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
В модели «Мои события» есть это
public function customers()
{
return $this->belongsToMany(Events::class,EventsJoin::class);
}
У модели "Мой клиент" есть этот
public function events()
{
return $this->belongsToMany(Customer::class,EventsJoin::class);
}
Мои события. У этого элемента есть этот сводный элемент
public function customer()
{
return $this->belongsTo(Customer::class);
}
public function event()
{
return $this->belongsTo(Events::class);
}
. У моего eventControler есть этот
$events=Customer::with(['event']);
, но возвращаемая пустая запись. способ, которым его работа - клиенты, могут создать события, и другие клиенты присоединятся к событию. в настоящее время те присоединяются к событиям, сохраняя с ИД пользователя в таблице events_join
. Я хочу объединить таблицу events_join
с таблицей customers
, чтобы получить дополнительную информацию о клиенте.