如何用枚举处理这个上下文? SQLSTATE [01000]:警告:1265数据截断列'类型'

时间:2018-03-13 16:45:43

标签: php laravel

我有一个具有这种结构的表:

Schema::create('questions', function (Blueprint $table) {
    $table->string('question');
    $table->enum('type', ['text', 'option', 'checkbox', 'select', 'long_text']);
    $table->integer('conf_id');
});

然后我有一个表单来创建一个问题。此表单具有问题的标题和类型。该类型是一个选择菜单,其中包含“长文本”,“文本”,“选择菜单”选项, “复选框”,“单选按钮”。

我怀疑是:

例如,如果用户为问题引入标题,然后是类型,例如类型值“Long Text”,则此类型值仅在langue为英语时才有效,但是例如用户更改另一种语言的语言时,“长文本”选项将具有不同的值,商店将无法使用。

你知道如何妥善处理这个问题吗?

我收到此错误:

SQLSTATE[01000]: Warning: 1265 Data truncated for column 'type' at row 1

 (SQL: insert into `questions` (`conf_id`, `question`, `type`) 

 values (1, test, Text))

存储问题:

$this->validate($request, [
        'question' => 'required|max:255|string',
        'type' => 'required|'in:text, option, checkbox, select, long_text',
    ]);
    $conf = Conf::find($id);
    Question::create([
        'conf_id' => $conf->id,
        'question' => $request->question,
        'type' => $request->type,
    ]);

输入表单字段:

 <div class="form-group">
                <label for="type">Type</label>
                <select class="form-control" name="type" id="type">
                    <option name="text">text</option>
                    <option name="long_text">Long Text</option>
                    <option name="checkbox">Select menu</option>
                    <option  name="radio_button">Radio button</option>
                    <option  name="select_menu">Checkbox</option>
                </select>
            </div>

0 个答案:

没有答案