2016-04-18 6 views
0

Handymenテーブル(チェックボックスを除くすべて)とスキルテーブル(チェックボックス)にデータを挿入するフォームがありますが、これらはジャンクションテーブルを使用して接続されています。両方のテーブルに追加されますが、私はどのようにそれがskill_idとhandyman_idが追加されたばかりの新しい行を追加するために接合テーブルを更新するのですか?他のファイル/コードが必要な場合はlaravelを使ってジャンクションテーブルを更新する

function addhandyman() 
{ 
    return view('layouts/addhandyman'); 
} 
function pushdetails(Request $request) 
{ 
$handyman = new Handyman(); 
    $handyman->first_name = $request->first_name; 
    $handyman->last_name = $request->last_name; 
    $handyman->street = $request->street; 
    $handyman->postcode = $request->postcode; 
    $handyman->town = $request->town; 
    $handyman->save(); 
    $skill = new Skill(); 
    $skill->skill = $request->skill; 
    $skill->save(); 
    return redirect('addhandyman'); 
} 

@section('content') 
<h1>Add new Handyman</h1> 
    <form action="{{url('pushdetails')}}" method="POST"> 
    {{ csrf_field() }} 
     <div> 
      <input type='text' name='first_name' placeholder='Enter First Name' /> 
      <input type='text' name='last_name' placeholder='Enter Last Name' /> 
      <input type='text' name='street' placeholder='Enter your Street' /> 
      <input type='text' name='postcode' placeholder='Enter your postcode' /> 
      <input type='text' name='town' placeholder='Enter your town' /> 
      <label>Carpenter</label> 
      <input type='checkbox' name='skill' value='Carpenter' /> 
      <label>Plumber</label> 
      <input type='checkbox' name='skill' value='Plumber' /> 
      <label>Painter</label> 
      <input type='checkbox' name='skill' value='Painter' /> 
     </div> 
    <input type="submit" name="submitBtn" value="Add new Handyman"> 
    </form> 
@endsection 

私に知らせてください。ひどく助けが必要です!ありがとう!

+0

ここは多対多の関係を使用する方が理にかなっていないでしょうか?あなたは複数の「カーペンター」スキルに終わりたくないですか?あなたは単にスキル 'カーペンター 'にハンディーマンをリンクしたいと思う。 – Robert

答えて

1

新しいリソース/モデルを作成すると、Laravel Models(Eloquent)のクールなことは、新しく作成された主キーIDを実際にデータベースの新しいリソースからモデルにプルします。

だから、あなたが行うとき:

$model = new Model(); 
$model->field = "value"; 
$model->save(); 
// This will actually already have the Primary Key ID in it. 
$mID = $model->id; 

だから、マニュアルの方法は、モデルからのIDの別のを抽出し、その後、手動でテーブルにそれらを追加することです。または、モデル内の関係をEloquent's Relationships Builderを使用して設定することもできます。

だから、このようなものになります:あなたのコードで

$h_id = $handyman->id; 
$s_id = $skill->id; 
DB::table('myJunctionTable')->insert(array('h_id' => $h_id, 's_id' => $s_id)); 

が追加さ:

$handyman->first_name = $request->first_name; 
$handyman->last_name = $request->last_name; 
$handyman->street = $request->street; 
$handyman->postcode = $request->postcode; 
$handyman->town = $request->town; 
$handyman->save(); 

$skill = new Skill(); 
$skill->skill = $request->skill; 
$skill->save(); 

$h_id = $handyman->id; 
$s_id = $skill->id; 
DB::table('myJunctionTable')->insert(array('h_id' => $h_id, 's_id' => $s_id)); 

return redirect('addhandyman'); 
関連する問題