Laravel Миграции базы данных Именование для $ table-> morphs ()? - PullRequest
0 голосов
/ 25 января 2020

В соответствии с do c для имени таблицы, например тегов, будет: $table->morphs('taggable');

, а как насчет имени типа product_tags?

$table->morphs('producttagable');

или

$table->morphs('product_tagable');

или

$table->morphs('productTagable');

также в модальном режиме:

  public function tagable()
  {
      return $this->morphTo();
  }

что является правильной функцией название для product_tags?

1 Ответ

0 голосов
/ 25 января 2020

Помощник $table->morphs(...) создает ..._id и ..._value, как указано в документации здесь https://laravel.com/docs/6.x/migrations#creating -колонки :

Добавляет taggable_id UNSIGNED BIGINT и taggable_type VARCHAR эквивалентные столбцы.

Таким образом, ваш параметр 'taggable' является просто префиксом. Я обычно использую имя 'morphable', которое является более общим c способом определения имен столбцов.

Затем вы можете использовать его в ваших отношениях, например:

public function posts()
{
    return $this->morphToMany('App\Post', 'morphable');
}

, что затем установите отношения в столбцах morphable_id и morphable_type.

...