【问题标题】:How to automatically insert user id in relation table(laravel)?如何在关系表(laravel)中自动插入用户ID?
【发布时间】:2018-12-03 13:44:52
【问题描述】:

我有员工桌和 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

【问题讨论】:

    标签: mysql laravel-5


    【解决方案1】:

    您缺少变量staff_id

     public function create()
    {
         $staffs = Staff::all();
         return view('keluarga.add_keluarga', compact('staffs'));
    
    }
    

    还有:

     <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('staff', 'Staff') }}
                    </div>
                    <div class="col-lg-8">
                        <select name="staff_id">
                            @foreach($staffs as $staff)
                                <option value="{{$staff->staff_id}}">{{$staff->staff_name}}</option>
                            @endforeach
                        </select>
                        {{ Form::text('nama', '', ['class' => 'form-control', 'placeholder' => '']) }}
    
                    </div>
                </div>
              <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
    

    $staff-&gt;staff_id, $staff-&gt;staff_name你应该改变跟随你的员工表。

    【讨论】:

    • 感谢您的帮助。它可以工作并且可以插入数据。
    【解决方案2】:
    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-&gt;staff_id
    现在应该可以解决您的问题了

    【讨论】:

    • 如何从url或隐藏表单发送staff_id?
    • 显示表单,从那里填写keluarga数据和加载相同表单的控制器
    猜你喜欢
    • 2019-10-13
    • 2015-02-26
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多