2017-09-11 3 views
0

私の見解にある他のリクエストはすべて dd($ request)を使ってリクエストに含まれていますが、ラジオボタンの入力はリクエストで読むことができません。ここに添付 は私のlaravel 5.4のラジオボタンをリクエストで読み取ることができません

見る私のコードです

<form method="post" action="{{route('update-dependent')}}"> 
    <div class="form-group"> 
     {{csrf_field()}} 
    <div class="form-group"> 
    <label>Last Name</label> 
    <input type="text" name="lname" value="{{$dependent->lname}}" class="form-control"> 
    </div>            

     <div class="form-group"> 
     {{-- conditional statement to check what geneder --}} 
     <input type="hidden" name="gender" value="bading" class="form-control"> 
     <label>Male</label>  
     <input type="radio" name="gender" value="male" class="form-control"> 
     <label>Female</label> 
     <input type="radio" name="gender" value="female" class="form-control"> 
     </div>  

     <div class="form-group"> 
     <label>Relationship</label> 
     <input type="text" name="relationship" value="{{$dependent->relationship}}" class="form-control"> 
     </div> 

     <div class="form-group"> 
     <button type="submit" class="btn btn-primary">Update</button> 
     </div> 

</form> 

コントローラ

HMO::UpdateDependent($request); 

    return redirect()->route('edit', request('hmo_id')); 

モデル

public static function updateDependent($request) 
{ 
    DB::table('hmos_detail') 
    ->where('id', $request->get('dependent_id')) 
    ->update([ 'lname'   => $request->get('lname'), 
       'gender'  => $request->get('gender'), 
       'relationship' => $request->get('relationship'), 
    return true; 
} 

結果、すべての

array:2 [▼ 
     "_token" => "sP9FVEbL3pI5Yaf2jlSfDATNtOTSz2Rheb4bH9Ti" 
     "lname" => "test" 
     "relationship" => "WIFE" 
    ] 
+0

すべての無線は同じ名前プロパティを持ちます。それはあなたが欲しいものですか? jQueryのようなJSのフレームワークで問題が生じる可能性があります。 – Anders

+0

dd($ request() - > all())を実行するとどうなりますか? – usrNotFound

+0

これはすべてのリクエストを表示しますが、ジェンダーは含まれていません(そのラジオボタンのためだと思います) –

答えて

2

まずあなたがラジオの値をしたいならば、あなたは代わりに適切な検証を持っていることを確認してください。

あなたはラジオボタンのいくつかのデフォルト値をしたい場合は、デフォルト値を持つことになります隠しフィールドを持っていることを確認してくださいさらに 次のリンク https://laravel.com/docs/5.5/validation#validation-quickstart

を見て、次に検証する方法がわからない場合この場合、検証は必要ありません。

だから、基本的な例は、無線BTNは常にデフォルトの選択を乗り切るか、いないようbadingています

<input type="hidden" name="gender" value="bading" class="form-control"> 

だろう。しかし、追加する場合

<input type="radio" name="gender" value="male" class="form-control"> 
<input type="radio" name="gender" value="female" class="form-control"> 

次に、非表示のフィールドが選択された値に置き換えられます。

+0

バグがあると思います。シンプルなビューで使用しようとしたときに起こりますが、モーダル内で使用するとラジオボタンが読み込まれません。 –

+0

隠しフィールドは同じフォーム要素になければなりません。 – usrNotFound

-1

質量割り当てにgenderを追加するのを忘れた可能性があります。 @Sreeが述べたように、あなたのモデルでは、

protected $fillable = ['gender', ....]; 
+0

リクエストに関連してどのように入力可能ですか?彼はデータベースなどに固執することについて話しているとは思わない。 – usrNotFound

+0

はい、あなたの言うことは正しいです。 $ fillableが$ requestとどのように関係しているか知りたいだけです。私が知っている限り、彼は '_token'を塗りつぶしとして設定しているとは思っていませんが、それでも値を得ています。 – usrNotFound

+0

私はこれを試してみましたが、フォームを提出するとリクエスト自体にジェンダーが含まれていなかったので、なぜか分かりません。 –

-1

を追加し、あなたは充填可能にgenderを与える必要があります。あなたはまた、単一ラインの新モデル を保存するために作成する方法を使用することができ

質量割り当て:ドキュメントからも

protected $fillable = ['gender', ....]; 

。挿入されたモデルインスタンスは、メソッドから に返されます。ただし、すべてのEloquent モデルはデフォルトで大量割り当てを防止するため、その前に をモデルに入力可能または保護された属性として指定する必要があります。

+0

私はまだデータを保存していませんが、現在ジェンダーのRADIOボタンがRequest $ requestで読めない理由をデバッグ中です –

+0

データをDBに割り当てると、Laravelはすべてのものを定義する必要がある塗りつぶし可能。それは必要です、あなたがまだ疑問があるなら、あなたは少しそれを掘るべきです。 – Gammer