Я работаю над более старой (laravel 5.6) кодовой базой, в этой кодовой базе есть несколько моделей с единственными именами таблиц (не по моей задумке ..). Когда я устанавливаю новое отношение поворота между моими таблицами «m_sector» и «m_tasklist», Eloquent автоматически предполагает, что имя таблицы «m_tasklist» имеет множественное число; "m_tasklists". Я знаю, что это разработано Laravel, поэтому я использую ручное переопределение, определенное в модели Tasklist. После изменения свойства $table
на «protected $ table = 'potato»; изменения были обнаружены и реализованы в запросе ..
Сообщение об ошибке
"debugMessage": "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.m_tasklists' doesn't exist (SQL: select count(*) as aggregate from `m_tasklists` where `id` in (1, 2, 3))"
Модель списка задач
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'm_tasklist';
/**
* A task list belongs to many sectors.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function sector(): BelongsToMany
{
return $this->belongsToMany(Sector::class, 'm_sector_m_tasklist', 'm_tasklist_id', 'm_sector_id');
}
Модель сектора
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'm_sector';
/**
* A sector belongs to many task lists.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tasklists(): BelongsToMany
{
return $this->belongsToMany(Tasklist::class, 'm_sector_m_tasklist', 'm_sector_id', 'm_tasklist_id');
}
Изображение имен таблиц PhpMyAdmin
Может кто-нибудь, пожалуйста, помогите мне разобраться в этом, это уже день ломает мне голову.
Если кто-то хочет знать, ключевые ограничения сформированы правильно, миграции работают и настроены правильно. Могу добавить, если поможет.