2017-09-01 15 views
0

CRUDアプリでOptionフォームを使用してデータを挿入しようとしています。しかし、その氏は述べています<option>からLaravelのデータベースにデータを挿入する

SQLSTATE [23000]:整合性制約違反:1048列 'site_categoryは' ヌル(SQLすることはできません。companysite_categorycategory_restuser_idupdated_atcreated_at)の値(、、1、2017に挿入-09-01午前8時30分09秒、2017年9月1日午前8時30分09秒))

ビュー

     {!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 
         <div class="form-group"> 
          <label for="siteCategory">Choose your website category</label><br> 
          <select class="custom-select" id="siteCategory"> 
            <option name="test1" value="test1">Option 1</option> 
            <option name="test2" value="test2">Option 2</option> 
            <option name="test3" value="test3">Option 3</option> 
          </select> 
         </div> 
         <div class="form-group"> 
          <label for="restrictCategory">Choose your website categories restrictions</label><br> 
          <select class="custom-select" id="restrictCategory" multiple> 
            <option name="test4" value="test4">Option 1</option> 
            <option name="test5" value="test5">Option 2</option> 
            <option name="test6" value="test6">Option 3</option> 
          </select> 
         </div> 
         <button type="submit" class="btn btn-primary">Add Company</button> 
        {!! Form::close() !!} 

コントローラ

public function store(Request $request) 
{ 
    $company = new Company; 
    $company->site_category = $request->input('test1'); 
    $company->site_category = $request->input('test2'); 
    $company->site_category = $request->input('test3'); 
    $company->category_rest= $request->input('test4'); 
    $company->category_rest= $request->input('test5'); 
    $company->category_rest= $request->input('test6'); 
    $company->user_id = auth()->user()->id; //sync with user 
    $company->save(); 

    return redirect('/dashboard/company'); 
} 

私のアクションコントローラで何か間違っていると思いますが、何ですか?

答えて

0

要素の名前を指定する必要があります。これらの要素は、 "$ request"結合配列のキーを表します。

<select class="custom-select" id="siteCategory" name="siteCategory"> 

<select class="custom-select" id="restrictCategory" name="restrictCategory[]" multiple> // set name attribute to an array to get all the selected choices 

コントローラ

public function store(Request $request) 
{ 
    $company = new Company; 
    $company->site_category = $request->input('siteCategory'); 
    $company->category_rest= implode(',', $request->input('restrictCategory')); // store it as string separated by commas 
    $company->user_id = auth()->user()->id; //sync with user 
    $company->save(); 

    return redirect('/dashboard/company'); 
} 
+0

ニース、それは動作しますが、私は乗算行を選択したときに助け ためのおかげでところで、それは一つの値だけが保存されます。 乗算を保存することはできますか? – qqmydarling

+0

はい、できます。私はデータをコンマで区切られた文字列として保存する例で私の答えを編集します。 –

+0

ありがとうございます;) – qqmydarling

関連する問題