Postingan lainnya
bagaimana cara merelasikan one to many ?
disini saya mempunyai kasus, 1 tabel user mempunyai banyak data registrasi. bagaimana cara merelasikan nya ? saya masih bingung di file controller nya. apakah ada yang bisa bantu ?
ini file controller saya
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class RegistrasiController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$regist = User::all();
return view('Registrasi.Form_Registrasi', compact('regist'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request,[
'user_id' => 'required',
'provinsi' => 'required',
'kota_kabupaten' => 'required',
'kecamatan' => 'required',
'kelurahan' => 'required',
]);
Registrasi::create($request->all());
return redirect()->route('registrasi.create');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
dan ini file model user
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $primaryKey = 'id_user';
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/*
* Method untuk yang mendefinisikan relasi antara model user dan model Role
*/
public function roles()
{
return $this->belongsToMany(Role::class);
}
/*
* Method untuk menambahkan role (hak akses) baru pada user
*/
public function putRole($role)
{
if (is_string($role))
{
$role = Role::whereRoleName($role)->first();
}
return $this->roles()->attach($role);
}
/*
* Method untuk menghapus role (hak akses) pada user
*/
public function forgetRole($role)
{
if (is_string($role))
{
$role = Role::whereRoleName($role)->first();
}
return $this->roles()->detach($role);
}
/*
* Method untuk mengecek apakah user yang sedang login punya hak akses untuk mengakses page sesuai rolenya
*/
public function hasRole($roleName)
{
foreach ($this->roles as $role)
{
if ($role->role_name === $roleName) return true;
}
return false;
}
// method one to many registrasi
public function registrasi()
{
return $this->hasMany(Registrasi::class);
}
}
ini file model registrasi nya :
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Registrasi extends Model
{
protected $fillable = [
'id_user', 'id_provinsi', 'id_kota', 'id_kecamatan', 'id_kelurahan'
];
public function user()
{
return $this->belongsTo('App\User');
}
}
dan ini file form blade nya :
@extends('layouts.app')
@section('content')
<div class="col-lg-12">
<div class="panel panel-info">
<div class="panel-heading">
<h3 class="panel-title">
<i class="livicon" data-name="doc-portrait" data-c="#fff" data-hc="#fff" data-size="18" data-loop="true"></i>
Form Registrasi
</h3>
<span class="pull-right">
<i class="fa fa-fw fa-chevron-up clickable"></i>
<i class="fa fa-fw fa-times removepanel clickable"></i>
</span>
</div>
<div class="panel-body">
<form action="{{ route('registrasi.store') }}" method="POST" class="form-horizontal">
{{ csrf_field() }}
<div class="form-body">
<div class="form-group pad-top40">
<label for="inputUsername" class="col-md-3 control-label">
Pilih Pegawai
<span class='require'>*</span>
</label>
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon">
<i class="livicon" data-name="user" data-size="18" data-c="#000" data-hc="#000" data-loop="true"></i>
</span>
<select name="user_id" class="form-control">
@foreach ($regist as $regis)
<option value="{{ $regis->id_user }}">{{ $regis->name }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-md-3 control-label">
Provinsi
<span class='require'>*</span>
</label>
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon">
<i class="livicon" data-name="location" data-c="#000000" data-hc="#fff111" data-size="18" data-loop="true"></i>
</span>
<select name="registrasi" class="form-control">
@foreach ($regist as $regis)
<option value="{{ $regis->provinsi }}">{{ $regis->nama_provinsi }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<label for="inputpassword" class="col-md-3 control-label">
Kota Kabupaten
<span class='require'>*</span>
</label>
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon">
<i class="livicon" data-name="location" data-c="#000000" data-hc="#fff111" data-size="18" data-loop="true"></i>
</span>
<select name="provinsi" class="form-control">
@foreach ($regist as $regis)
<option value="{{ $regis->kota_kabupaten }}">{{ $regis->kota_kabupaten }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<label for="inputnumber" class="col-md-3 control-label">
Kecamatan
<span class='require'>*</span>
</label>
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon">
<i class="livicon" data-name="location" data-c="#000000" data-hc="#fff111" data-size="18" data-loop="true"></i>
</span>
<select name="provinsi" class="form-control">
@foreach ($regist as $regis)
<option value="{{ $regis->kecamatan }}">{{ $regis->kecamatan }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<label for="inputAddress" class="col-md-3 control-label">
Kelurahan
<span class='require'>*</span>
</label>
<div class="col-md-6">
<div class="input-group">
<span class="input-group-addon">
<i class="livicon" data-name="location" data-c="#000000" data-hc="#fff111" data-size="18" data-loop="true"></i>
</span>
<select name="provinsi" class="form-control">
@foreach ($regist as $regis)
<option value="{{ $regis->kelurahan }}">{{ $regis->kelurahan }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-actions">
<div class="col-md-offset-3 col-md-9">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</div>
</div>
@endsection
0
3 Jawaban:
Di model user tinggal tambahin satu method mas
public function registrasi(){
return $this->hasMany(Registrasi::class);
}
2
sudah om cuman skrang problem nya belum bisa nyimpen ke database
0
Apanya mas yang gabisa simpen ke database? Jangan lupa tambahin data user di tabel registrasi, biasanya cukup simpen key nya aja dari tabel user.
0