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
avatar Aditiyafadillah33
@Aditiyafadillah33

48 Kontribusi 3 Poin

Diperbarui 6 tahun yang lalu

3 Jawaban:

Di model user tinggal tambahin satu method mas

 public function registrasi(){
    return $this->hasMany(Registrasi::class);
}
avatar Yurichandra
@Yurichandra

41 Kontribusi 9 Poin

Dipost 6 tahun yang lalu

sudah om cuman skrang problem nya belum bisa nyimpen ke database

avatar Aditiyafadillah33
@Aditiyafadillah33

48 Kontribusi 3 Poin

Dipost 6 tahun yang lalu

Apanya mas yang gabisa simpen ke database? Jangan lupa tambahin data user di tabel registrasi, biasanya cukup simpen key nya aja dari tabel user.

avatar Yurichandra
@Yurichandra

41 Kontribusi 9 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban