Login Dengan Social Media di Laravel Menggunakan Socialite #3 : One to Many Eloquent Relationships - Halo teman-teman semuanya, pada kesempatan kali ini kita semua akan belajar tentang One to Many Relationships dari Model User ke SocialAccount.
Ini digunakan karena bisa jadi 1 User bisa memiliki lebih dari 1 akun Sosial Media, maka kita akan membuat Relationships dari kedua table ini. Langsung saja kita mulai.
Langkah 1 - Hash Many
Silahkan teman-teman buka file Model App/User.php
dan silahkan teman-teman tambahkan kode berikut ini di dalam Model.
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function socialAccounts()
{
return $this->hasMany(SocialAccount::class);
}
Di atas, kita akan memberitahu aplikasi kita bahawa kita akan melakukan relasi Many ke Model atau table SocialAccount.
Jika file model App/User.php
di tulis dengan lengkap, kurang lebih seperti berikut ini :
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function socialAccounts()
{
return $this->hasMany(SocialAccount::class);
}
}
Langkah 2 - BelongsTo
Pada tahap kali ini kita akan deklarasikan bahwa Model atau Table SocialAccount ini terhubung dengan table / Model User.
Silahkan teman-teman tambahkan function dibawah ini di dalam Model App/SocialAccount.php
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()
{
return $this->belongsTo(User::class);
}
Atau jika di tulis dengan lengkap, kurang lebih seperti berikut ini :
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class SocialAccount extends Model
{
/**
* @var array
*/
protected $guarded = [];
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
Sampai disini pembahasan tentang bagaimana cara membuat Relationship Eloquent One to Many di Laravel, di artikel selanjutnya kita semua akan belajar bagaimana cara membuat Auth di Laravel.
Terima Kasih.