Professional Documents
Culture Documents
DATABASE RELATION CHEATSHEETdocx
DATABASE RELATION CHEATSHEETdocx
DATABASE RELATION CHEATSHEETdocx
Eloquent Models:
class Owner
{
public function car()
{
return $this->hasOne(Car::class);
}
}
class Car
{
public function owner()
{
return $this->belongsTo(Owner::class);
}
}
Database Migrations:
Eloquent Models:
class Thief
{
public function cars()
{
return $this->hasMany(Car::class);
}
}
class Car
{
public function thief()
{
return $this->belongsTo(Thief::class);
}
}
Database Migrations:
Eloquent Models:
class Man
{
public function cars()
{
return $this->morphMany(Car::class, 'buyer');
}
}
class Woman
{
public function cars()
{
return $this->morphMany(Car::class, 'buyer');
}
}
class Car
{
public function buyer()
Tabel Cars harus menyimpan buyer_id dan {
buyer_type."buyer" adalah nama yang return $this->morphTo();
diberikan kepada sekelompok model (Man dan }
Woman). Dan itu tidak terbatas pada dua. }
Buyer_Type adalah nama asli model.
Database Migrations:
/ Create relation between buyer (Man/Woman) and Car. // Get buyer (Man/Woman) Cars
$man->cars()->saveMany([ $men->cars
$car1, $women->cars
$car2, // Get Car buyer (Man and Woman)
]); $car->buyer
$woman->cars()->saveMany([
$car1,
$car2,
]);
// Or use the save() function for single model.
$man->cars()->save($car);
$woman->cars()->save($car);
// Create relation between Car and buyer (Men/Women).
$car1->buyer()->associate($man)->save();
$car2->buyer()->associate($woman)->save();
Many to Many Relationship
Contoh kita memiliki 2 model (Driver, Car), Rules:
dan 3 tabel (drivers, cars and car_driver). Driver dapat mengendarai banyak Cars.
Car dapat dikendarai oleh banyak Drivers.
Eloquent Models:
class Driver
{
public function cars()
{
return $this->belongsToMany(Car::class);
}
}
class Car
{
public function drivers()
{
return $this->belongsToMany(Driver::class);
}
}
Database Migrations:
class Valet {
public function cars()
{
return $this->morphToMany(Car::class, 'driver');
}
}
class Owner {
public function cars()
{
return $this->morphToMany(Car::class, 'driver');
}
}
class Car {
tabel Pivot “Drivers” harus public function valets()
menyimpan Driver ID, Driver Type {
dan Car ID. return $this->morphedByMany(Valet::class, 'driver');
"Driver" adalah nama yang diberikan }
kepada sekelompok model (Valet public function owners()
dan Owner). Dan itu tidak terbatas {
pada dua. Tipe driver adalah nama return $this->morphedByMany(Owner::class, 'driver');
asli dari model. }
}