Я застрял на том, как правильно связать моих пользователей с другими таблицами. Я пытался работать с обработкой полиморфных таблиц Laravel без успеха. Вот как выглядят мои столы (не обращайте внимания на множественное использование экипировки и брони, они изменятся позже).
У пользователя будет много снаряжения, которое указывает на одно оружие или броню.
:: users ::
id
name
:: equipment ::
id
user_id
equipment_id
equipment_type
:: weapons ::
id
name
:: armors ::
id
name
Что я хотел бы сделать, так это получить оружие и доспехи пользователей
$user->weapons ( Should return all weapons )
$user->armors ( Should return all armors )
Внутри моей БД у меня есть 2 записи в таблице оборудования:
id: 1
user_id: 21 (current user)
equipment_id = 1 (id of a weapon in weapons table)
equipment_type = weapon (string)
id: 2
user_id: 21 (current user)
equipment_id = 2 (id of a weapon in weapons table)
equipment_type = weapon (string)
Это моя текущая попытка использовать полиморфные таблицы larvel
UserModel:
class User extends Authenticatable
{
public function weapons()
{
return $this->morphedByMany('App\Weapon', 'equipment');
}
}
WeaponModel:
class Weapon extends Model
{
public function users()
{
return $this->morphToMany('App\User', 'equipment');
}
}