Я беспокоился об автоматических именах таблиц в отношениях многих ко многим Laravel.
например:
Schema::create('feature_product', function (Blueprint $table) {
когда изменить имя таблицы на:
Schema::create('product_feature', function (Blueprint $table) {
У меня ошибка в моих отношениях.
Что случилось с product_feature
?
Соглашение об именах сводных таблиц в Laravel — это имена таблиц в единственном числе в алфавитном порядке, разделенные подчеркиванием. Итак, если одна таблица features
, а другая таблица products
, сводная таблица будет feature_product
,
Вы можете использовать любое имя таблицы (например, product_feature
), но затем вам нужно будет указать имя сводной таблицы во взаимосвязи. Это делается с помощью второго параметра belongsToMany()
функция.
// in Product model
public function features()
{
return $this->belongsToMany('App\Feature', 'product_feature');
}
// in Feature model
public function products()
{
return $this->belongsToMany('App\Product', 'product_feature');
}
Других решений пока нет …