mysql - 在 Laravel 中将 <option> 中的数据插入数据库

标签 mysql laravel frameworks

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

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'site_category' cannot be null (SQL: insert into company (site_category, category_rest, user_id, updated_at, created_at) values ( , , 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() !!} 

Controller

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');
}

我猜我的 Action Controller 出了问题,但是什么?

最佳答案

您必须为元素命名,它们代表“$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

Controller

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');
}

关于mysql - 在 Laravel 中将 <option> 中的数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45996367/

相关文章:

mysql - Rails 关联多个字符串外键

php - 无法更改上传文件的文件夹位置

php - 使用空白字段条目更新,MySql 将其显示为零

php - 如何将图像从 python 传递到 laravel

php - 如何显示 API 请求的自定义验证错误消息?

.net - 您对 MS CAB(复合应用程序 block )有何看法?

php - ASP.Net MVC或Zend框架。您的意见是什么?

javascript - 如何在页面刷新/加载时刷新验证码图像?

如果列值中不存在分隔符,Mysql split_str 函数将返回空值

php - Laravel Excel 排队导出不会创造就业机会