【问题标题】:Inserting data from <option> to Database in Laravel在 Laravel 中将数据从 <option> 插入数据库
【发布时间】:2017-09-01 08:44:37
【问题描述】:

尝试在 CRUD 应用中使用选项表单插入数据。但它说

SQLSTATE[23000]:违反完整性约束:1048 列“site_category”不能为空(SQL:插入companysite_categorycategory_restuser_idupdated_atcreated_at)值( , , 1, 2017-09-01 08:30:09, 2017-09-01 08:30:09))

查看

                      {!! Form::open(['action' => 'CompanyController@store', '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');
}

我猜我的动作控制器有问题,但是什么?

【问题讨论】:

    标签: mysql laravel frameworks


    【解决方案1】:

    您必须命名您的元素,它们代表“$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');
    }
    

    【讨论】:

    • 很好,它有效,感谢您的帮助顺便说一句,当我选择乘行时,它只保存一个值。是否可以保存乘数?
    • 是的,你可以。我用一个示例编辑我的答案,它将数据存储为用逗号分隔的字符串。
    • 谢谢你,伙计;)
    猜你喜欢
    • 2020-03-23
    • 2020-07-05
    • 2018-10-17
    • 1970-01-01
    • 2020-08-26
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多