2017-08-30 64 views
0

Laravel 5.4には、チェックボックスとテキストボックスを持つ小さなフォームがあります。問題は、私がフォームを投稿するときに、チェックボックスの値がリクエストから来ていないということです。チェックボックスにはカスタムスタイルがありますが、確かにそれはできません。フォームからチェックボックスの要素値が取得されない

私はこれをしばらく見てきましたが、すべて正常です。私のコードは以下の通りです:

<form method="post" action="{{ route('admin.settings.save') }}"> 
    {{ csrf_field() }} 
    <div class="row"> 
     <div class="col-md-6"> 
      <div class="form-group"> 
       <label><b>Site Name</b></label> 
       <p>This is the name of your LaravelFileManager instance.</p> 
       <input name="siteName" id="siteName" class="form-control" value="{{ \App\Helpers\ConfigHelper::getValue('site_name') }}" /> 
      </div> 

      <div class="form-group"> 
       <label><b>Footer Message</b></label> 
       <p>You can customise the footer message for the application.</p> 
       <div class="checkbox"> 
        <label> 
         <input type="checkbox" name="showFooter" id="showFooter" checked="{{ \App\Helpers\ConfigHelper::getValue('show_footer_message') }}"> Show footer message 
        </label> 
       </div> 
      </div> 

      <button type="submit" class="btn btn-success"><i class="fa fa-save"></i>&nbsp;&nbsp;Save Changes</button> 
     </div> 
    </div> 
</form> 

私のコントローラコードのようなある:

public function saveSettings(Request $request) { 
    $siteName = $request->input('siteName'); 
    $showFooter = $request->input('showFooter'); 

    ConfigHelper::setValue('site_name', $siteName); 
    ConfigHelper::setValue('show_footer_message', $showFooter); 

    return redirect()->route('admin.settings')->with('result', 'Settings saved.'); 
} 

マイルート:

Route::post('settings/save', ['uses' => 'Admin\[email protected]'])->name('admin.settings.save'); 

私も$リクエスト変数にvardumpを行ってもきましたチェックボックスの値がありません:

array(2) { 
    ["_token"]=> string(40) "sgyO7Kkz1ljsYEZ1G5nkj4uVbmFZqiTMbpK9P6Bi" 
    ["siteName"]=> string(16) "File Manager 1.0" 
} 

'showFooter'変数がありません。

これはどこに行けばよいかわかりません。どんな助けもありがたい。

+0

入力タイプに値を設定してください。 – Jenssen

+0

@Jenssen私はデフォルトの 'value =" "'をチェックボックス入力に設定しましたが、まだクラッシュします。 –

+0

@MorganLane私が使用しているのは、コントローラ上の三項式です: 'request( 'showFooter')? true:false'をチェックするとtrueになり、チェックされていなければfalseになります。それはあなたと一緒に働きますか? – Lvkz

答えて

2

私はこれを最後にやっています。コメントの助けを借りて:$request->input('showFooter')を使用すると、正しく機能しませんでした。 $request->get('showFooter')は真のときに結果をもたらします。したがって、三項を追加するたびにそれが機能します。

+1

この場合、** $ request-> has( 'showFooter')**を使用することをお勧めします。これはあなたを真実または偽に戻します。 –

+0

@OdinThunderありがとう、変更されました:) –

関連する問題