2015-10-14 62 views
1

我有如下表如何一次插入多個技能?

技能

id|skill_name|category 

用戶表

id | username 

user_skill

id|userid|skill_id|rating 

我想插入療法用戶的所有技能進入add_skill表:

<table class="table table-bordered table-design"> 
<form class="form-signin" method="POST" action="{{url('admin/my-skills')}}"> 
      {!! Form::token() !!} 


      <tr class="table-header" > 

       <th rowspan="2">ID</th> 

       <th rowspan="2"> Skills</th> 

       <th colspan="5" >Rate Your Skills Out of 5</th> 



      </tr> 
<tr class="radio-content table-header"> 
     <th class="radio-content">1 star</th> 
     <th class="radio-content">2 star</th> 
     <th class="radio-content">3 star</th> 
     <th class="radio-content">4 star</th> 
      <th class="radio-content">5 star 


      </th> 
    </tr> 

<?php $i=1; ?> 

@foreach($data as $val) 
      <tr> 

       <td>{{$i}}</td> 

       <td>{{$val->skill_name}}</td> 

       <td class="radio-content"><input type="radio" name="q{{$i}}" value="1" /></td> 
       <td class="radio-content"><input type="radio" name="q{{$i}}" value="2"/></td> 
       <td class="radio-content"><input type="radio" name="q{{$i}}" value="3"/></td> 
       <td class="radio-content"><input type="radio" name="q{{$i}}" value="4" /></td> 
       <td class="radio-content"><input type="radio" name="q{{$i}}" value="5"/></td> 


      </tr> 
      {{$i++}} 
@endforeach 

      <tr> 
      <td colspan="2"><p class="submit-label">Submit</p></td> 
       <td colspan="5"><button type="submit" class="btn-new btn-submit">Submit Your Skills</button></td> 
      </tr> 



</form> 
    </table> 

enter image description here 當我提交表單,我需要插入所有技能中add_skill表,但我的問題是我不能設置所有輸入無線電的同名。如果我設置了相同的名稱,那麼我只能選擇一個項目。

任何人都可以告訴我如何實現這一目標嗎?如果我的表結構錯了,請指導我。

+0

你也可以在這裏實現元表概念.. –

+0

@Vijay Sankhat你可以提供一個例子嗎? – vision

回答

2

儘管Aniruddha Chakraborty說,你可以可以在一個查詢中插入多個技能。你所擁有的表格模式是好的,並且在這種情況下會被推薦:使用兩個外鍵的連接表:一個指向用戶,另一個指向技能。儘管按照Laravel的慣例,如果命名爲skill_user,你的生活會變得更容易。

當您提交表單時,您將獲得一組技能ID。如果您的用戶模型有一個skills()方法定義belongsToMany關係,那麼你可以一次過把它們插入這樣的:

$user->skills()->sync($request->q); 

爲了方便閱讀,我場重命名你的HTML是「技能」(即<input name="skills[]" />)。這樣一來它更描述了一下,你的代碼應該是這樣的:

$user->skills()->sync($request->skills); 

更容易閱讀,如「技能」,使得很多更有意義不僅僅是「Q」。

+0

。謝謝你的答案。你是對的我可以使用skill_user.my的問題是如何從這個form.how插入名稱輸入收音機? – vision

+0

我在帖子中給出了這些問題的答案。 –

+0

.sorry.thank you.i會嘗試 – vision