Tutorial Login Dengan Google & Github di Laravel 9 Menggunakan Socialite #3 : One to Many Eloquent Relationships


Tutorial Login Dengan Google & Github di Laravel 9 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 Google & Github, maka kita akan membuat Relationships dari kedua table ini. Langsung saja kita mulai.

Langkah 1 - Hash Many

Silahkan teman-teman buka file Model App/Models/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 project kita bahwa kita akan melakukan relasi Many ke Model atau table SocialAccount.

Jika file model App/Models/User.php di tulis dengan lengkap, kurang lebih seperti berikut ini :

<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    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/Models/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\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class SocialAccount extends Model
{
    use HasFactory;

    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, Semoga bermanfaat.

Terima Kasih.


Syahrizal AS
Full-Stack Web Developer

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami