首页 > 解决方案 > 如何在关系表(laravel)中自动插入用户ID?

问题描述

我有员工桌和 keluargas 桌。每个员工都会有许多keluargas。

我想通过填写详细信息(nama、kp、alamat、hubungan、tel、status)向特定员工添加新成员

在 keluargas 表中,有 id、staff_id、nama、kp、tel、alamat、satuts、hubungan 字段。

当我想将具有值的新行插入到 keluargas 时的问题,它会给出错误,因为 staff_id 没有值。如何取要插入keluargas表的staff_id值?

这是在 keluargas 中插入新数据的代码。

   public function store(Request $request)
{


     $keluarga = [
    'nama' => $request->nama,
    'kp' => $request->kp,
    'tel' => $request->tel,
    'pekerjaan' => $request->pekerjaan,
    'alamat' => $request->alamat,
    'hubungan' => $request->hubungan,
    'status_kahwin' => $request->status_kahwin,
    'status_undi' => $request->status_undii,
];

$save = keluargas::insert($keluarga);

if($save)
    return redirect('keluarga');
else
    return redirect()->back()->withInput();
}

要显示的数据来自此代码:

   public function index()
{
     if (Auth::user()->type == 0) {

        $section = Auth::user()->section;

        $data['data'] = DB::table('staffs')
                        ->join('keluargas', 'staffs.id', '=', 'keluargas.staff_id')
                        ->join('kahwin', 'keluargas.status_kahwin', '=', 'kahwin.KahwinId')
                        ->join('undi', 'keluargas.status_undi', '=', 'undi.id')
                        ->where('section','=', $section)
                        ->get();


        $counter = 1;

           if(count($data) > 0)
             {
                return view('keluarga.index', $data);
             }

             else
             {
                return view('keluarga.index', $data);
             }

        //return view('home');

    } else {

        $data['data'] = DB::table('staffs')
                        ->join('keluargas', 'staffs.id', '=', 'keluargas.staff_id')
                        ->join('kahwin', 'keluargas.status_kahwin', '=', 'kahwin.KahwinId')
                        ->join('undi', 'keluargas.status_undi', '=', 'undi.id')
                        ->get();

        return view('keluarga.index', $data);
  }
}

此功能正在使用 laravel 中的资源控制器。

如何添加staff_id,指的是要添加到此功能中的选定人员?

控制器加载表单:

 public function create()
{
     return view('keluarga.add_keluarga');

}

控制器添加到数据库:

    public function store(Request $request)
{


     $keluarga = [
    'nama' => $request->nama,
    'kp' => $request->kp,
    'staff_id' => $request->$id,
    'tel' => $request->tel,
    'pekerjaan' => $request->pekerjaan,
    'alamat' => $request->alamat,
    'hubungan' => $request->hubungan,
    'status_kahwin' => $request->status_kahwin,
    'status_undi' => $request->status_undii,
];

$save = keluargas::insert($keluarga);

if($save)
    return redirect('keluarga');
else
    return redirect()->back()->withInput();
}

表格填写keluarga数据:

   @extends('layouts.appmenu')

  @section('content')

        <div class="container">
            <!-- Tajuk Kakitangan -->
            <div class="row">
                <div class="col-lg-10">
                    <ol class="breadcrumb">
                        <li class="active">
                            <i class="fa fa-user fa-fw"></i> Ahli Keluarga Baru
                        </li>
                    </ol>
                </div>
            </div>

          {!! Form::open(['method' => 'POST', 'action' => 'KeluargaController@store']) !!}

          <div class="form-group">
            <div class="row">
                <div class="col-lg-1"> 
                    {{ Form::label('nama', 'Nama') }}
                </div>
                <div class="col-lg-8"> 
                    {{ Form::text('nama', '', ['class' => 'form-control', 'placeholder' => '']) }}
                <!-- {{ Form::text('title', '', ['class' => 'form-control', 'placeholder' => 'Title']) }} -->
                </div>
            </div>

          <br>
          <div class="form-group">
            <div class="row">
                <div class="col-lg-1">
                    {{ Form::label('no_kp', 'No K/P') }}
                </div>
                <div class="col-lg-8">
                    {{ Form::text('kp', '', ['class' => 'form-control', 'placeholder' => '']) }}
                </div>
            </div>
          </div>


          <div class="form-group">
            <div class="row">
                <div class="col-lg-1">
                    {{ Form::label('pekerjaan', 'Pekerjaan') }}
                </div>
                <div class="col-lg-8">
                    {{ Form::text('pekerjaan', '', ['class' => 'form-control', 'placeholder' => '']) }}
                </div>
            </div>
          </div>

          <div class="form-group">
            <div class="row">
                <div class="col-lg-1">
                    {{ Form::label('tel', 'No Tel') }}
                </div>
                <div class="col-lg-8">
                    {{ Form::text('tel', '', ['class' => 'form-control', 'placeholder' => '']) }}
                </div>
            </div>
          </div>

          <div class="form-group">
            <div class="row">
              <div class="col-lg-1">
                {{ Form::label('hubungan', 'Hubungan') }}
              </div>
              <div class="col-lg-8">
                {{ Form::textarea('hubungan', '', ['class' => 'form-control', 'placeholder' => '']) }}
              </div>
            </div>
          </div>


          <div class="form-group">
            <div class="row">
                <div class="col-lg-1">
                    {{ Form::label('alamat', 'Alamat') }}
                </div>
                <div class="col-lg-8">
                    {{ Form::textarea('alamat', '', ['class' => 'form-control', 'placeholder' => '']) }}
                </div>
            </div>
          </div>


          <div class="form-group">
            <div class="row">
              <div class="col-lg-1">
                {{ Form::label('status', 'Status') }}
              </div>
              <div class="col-lg-8">
                {{ Form::text('status_kahwin', '', ['class' => 'form-control', 'placeholder' => '']) }}
              </div>
            </div>
          </div>


          <div class="form-group">
            <div class="row">
              <div class="col-lg-1">
                {{ Form::label('status_undi', 'Status Daftar Mengundi') }}
              </div>
              <div class="col-lg-8">
                {{ Form::text('status_undi', '', ['class' => 'form-control', 'placeholder' => '']) }}
              </div>
            </div>
          </div>


          <form action="{{ $id }}" method="POST">
          <input type="hidden" name="_method" value="PUT">    



        </div>

        <div class="row">
            <div class="col-lg-4">
            </div>
            <div class="col-lg-4">

                {{ Form::submit('Add New', ['class' => 'btn btn-primary']) }}

            {!! Form::close() !!}

            {!! link_to(URL::previous(),'Cancel', ['class' => 'btn btn-warning']) !!}

            </div>
        </div>



</div>





 @endsection

标签: mysqllaravel-5

解决方案


public function create(Staff $staff)
{
     $data['staff'] = $staff->pluck('name','id');
     return view('keluarga.add_keluarga',$data);

}

在您的表格

{{ Form::select('staff_id', $staff,null, ['class' => 'form-control']) }}

现在在商店方法中,您可以使用$request->staff_id
它现在应该可以解决您的问题


推荐阅读