Im stuck on how to connect my users with other tables in a clean way. I've tried to work with laravel polymorphic table handling without success. This is what my tables look like, ( ignore the plural use of equipment and armor, will change later).
A user will have many equipments which points to one weapon or armor.
:: users ::
id
name
:: equipments ::
id
user_id
equipmentable_id
equipmentable_type
:: weapons ::
id
name
:: armors ::
id
name
What i would like to do is to get weapons and armors of users
$user->weapons ( Should return all weapons )
$user->armors ( Should return all armors )
This is my current attempt using larvel polymorphic tables
UserModel:
class User extends Authenticatable
{
public function equipments()
{
return $this->hasMany(Equipment::class);
}
}
EquipmentModel:
class Equipment extends Model
{
public function equipments()
{
return $this->morphTo();
}
public function weapons()
{
return $this->equipments()->where('equipmentable_id', 'App\Weapon');
}
public function armors()
{
return $this->equipments()->where('equipmentable_type', 'App\Armor');
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire