Почему Laravel спрашивает сводную таблицу как единственную в моем коде? Как я могу исправить, чтобы он назывался множественным числом?Laravel Сводная таблица не множественная
Таблицы базы данных
- пользователей (ID, и т.д.)
- кампании (идентификаторы и т.д.)
- campaign_users (user_id, CAMPAIGN_ID)
Код
Моя кампания модель и модель campaign_user в значительной степени пусты и созданы мастером. Но вот мой пользователь отношение к кампаниям, в модели пользователя:
public function playing_campaigns()
{
return $this->belongsToMany('Sagohamnen\campaign\campaign');
}
Здесь я называю DB, чтобы получить кампании, в которой пользователь является частью:
$user = user::with(['playing_campaigns'])->where('id', $id)->get();
ошибки SQL
SQLSTATE [42S02]: Базовая таблица или представление не найдено: 1146 таблица 'sagohamnen.campaign_user' не существует (SQL:. выберите
campaigns
*,campaign_user
.user_id
aspivot_user_id
,campaign_user
.campaign_id
какpivot_campaign_id
отcampaigns
внутренний присоединениеcampaign_user
наcampaigns
.id
=campaign_user
.campaign_id
, гдеcampaign_user
.user_id
в (1))
также ознакомьтесь с документацией по другим параметрам, которые вы можете передать. [Многостраничная документация] (https://laravel.com/docs/5.2/eloquent-relationships#many-to-many) – Carlos
Спасибо за ответ. Если вы понимаете право на документацию, не нужно добавлять второй аргумент, если таблицы называются в соответствии с соглашением Laravel. «Красноречивый присоединится к двум связанным именам модели в алфавитном порядке». Hm, хотя я добавил второй аргумент, чтобы увидеть, произошли ли какие-либо изменения. Результатом стал пустой массив, hm. – Olof84
Это алфавитный порядок и единственное, поэтому ваш стол должен быть 'campaign_user'. Если это пустой массив, возвращаемый, убедитесь, что у вас есть данные, вставленные для этого идентификатора пользователя, который вы используете. Это также помогает включить общий журнал в вашу БД и наблюдать за запущенными запросами и убедиться, что они имеют смысл. – user3158900