[Comunity] Laravel A Framework For Web Artisans :: Belajar, Diskusi, Tanya, dll.
TS
aa_pratomo
[Comunity] Laravel A Framework For Web Artisans :: Belajar, Diskusi, Tanya, dll.
Hallo Gan, berhubung di kaskus ini saya ubek2 belum ada thread yang membahas Laravel, maka dari itu saya ijin untuk membuat threadnya untuk keperluan Belajar, Diskusi dan Tanya-jawab.
Diubah oleh aa_pratomo 26-10-2016 16:30
vanturgo16 dan 5 lainnya memberi reputasi
6
326.7K
Kutip
4.1K
Balasan
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Agan2 mau tanya dunk:
saya kan ceritanya punya 6 tabel: user, detail_user, desa,kecamatan,kabupaten dan provinsi. Relasinya seperti gambar dibawah ini:
Spoiler for tabel:
Dan data yang ingin saya panggil ada 3 ini:
Spoiler for gambar data:
Akan tetapi saat dipanggil, relasi hanya berhasil di data pertama saja,untuk data selanjutnya return null pada bagian relasi
Spoiler for data pertama berhasil:
Spoiler for data berikutnya return null:
User modelnya
Spoiler for user model:
Code:
public function detailuser()
{
return $this->hasOne('App\Models\DetailUser', 'id', 'id');
}
public function desa()
{
return $this->hasOneThrough(
'App\Models\Desa',
'App\Models\DetailUser',
'id_desa',
'id_desa',
'id',
'id'
);
}
public function kecamatan()
{
return $this->hasOneThrough(
'App\Models\Kecamatan',
'App\Models\DetailUser',
'id_kecamatan',
'id_kecamatan',
'id',
'id'
);
}
public function kabupaten()
{
return $this->hasOneThrough(
'App\Models\Kabupaten',
'App\Models\DetailUser',
'id_kabupaten',
'id_kabupaten',
'id',
'id'
);
}
public function provinsi()
{
return $this->hasOneThrough(
'App\Models\Provinsi',
'App\Models\DetailUser',
'id_provinsi',
'id_provinsi',
'id',
'id'
);
}
public function user()
{
return $this->belongsTo('App\Models\User', 'id', 'id');
}
public function desa()
{
return $this->hasOne('App\Models\Desa', 'id_desa', 'id_desa');
}
public function kecamatan()
{
return $this->hasOne('App\Models\Kecamatan', 'id_kecamatan', 'id_kecamatan');
}
public function kabupaten()
{
return $this->hasOne('App\Models\Kabupaten', 'id_kabupaten', 'id_kabupaten');
}
public function provinsi()
{
return $this->hasOne('App\Models\Provinsi', 'id_provinsi', 'id_provinsi');
}
public function getNamaLengkapAttribute($nama_lengkap)
{
return ucwords($nama_lengkap);
}
Desa Model
Spoiler for desa model:
Code:
use HasFactory;
protected $table = 'desa';
protected $primaryKey = 'id_desa';
protected $fillable = [
'nama_desa',
'id_kecamatan'
];
public function setNamaDesaAttribute($nama_desa)
{
$this->attributes['nama_desa'] = strtolower($nama_desa);
}
public function getNamaDesaAttribute($nama_desa)
{
return ucwords($nama_desa);
}
public function kecamatan()
{
return $this->belongsTo('App\Models\Kecamatan', 'id_kecamatan');
}
public function detailuser()
{
return $this->belongsTo('App\Models\DetailUser', 'id_desa', 'id_desa');
}
Kecamatan Model
Spoiler for Kecamatan Model:
Code:
use HasFactory;
protected $table = 'kecamatan';
public $timestamps = true;
protected $primaryKey = 'id_kecamatan';
protected $fillable = [
'nama_kecamatan',
'id_kabupaten'
];
public function setNamaKecamatanAttribute($nama_kecamatan)
{
$this->attributes['nama_kecamatan'] = strtolower($nama_kecamatan);
}
public function getNamaKecamatanAttribute($nama_kecamatan)
{
return ucwords($nama_kecamatan);
}
public function kabupaten()
{
return $this->belongsTo('App\Models\Kabupaten', 'id_kabupaten');
}
public function kecamatan()
{
return $this->hasMany('App\Models\Desa', 'id_kecamatan');
}
public function detailuser()
{
return $this->belongsTo('App\Models\DetailUser', 'id_kecamatan', 'id_kecamatan');
}
public function setNamaKabupatenAttribute($nama_kabupaten)
{
$this->attributes['nama_kabupaten'] = strtolower($nama_kabupaten);
}
public function getNamaKabupatenAttribute($nama_kabupaten)
{
return ucwords($nama_kabupaten);
}
public function provinsi()
{
return $this->belongsTo('App\Models\Provinsi', 'id_provinsi');
}
public function kecamatan()
{
return $this->hasMany('App\Models\Kecamatan', 'id_kabupaten');
}
public function detailuser()
{
return $this->belongsTo('App\Models\DetailUser', 'id_kabupaten', 'id_kabupaten');
}
provinsi model
Spoiler for provinsi model:
Code:
use HasFactory;
public $timestamps = true;
protected $table = 'provinsi';
protected $primaryKey = 'id_provinsi';
protected $fillable = [
'nama_provinsi'
];
public function setNamaProvinsiAttribute($nama_provinsi)
{
$this->attributes['nama_provinsi'] = strtolower($nama_provinsi);
}
public function getNamaProvinsiAttribute($nama_provinsi)
{
return ucwords($nama_provinsi);
}
public function kabupaten()
{
return $this->hasMany('App\Models\Kabupaten', 'id_provinsi');
}
public function detailuser()
{
return $this->belongsTo('App\Models\DetailUser', 'id_provinsi', 'id_provinsi');
}
Controllernya:
Spoiler for controller:
Code:
public function show($id)
{
$title = 'Admin Dashboard | Aplikasi Rental Mobil Terbaik di Indonesia';
$user = User::with('detailuser', 'desa', 'kecamatan', 'kabupaten', 'provinsi')->findOrFail($id);
return $user;
}