【问题标题】:Laravel will not add "colour" to column in database?Laravel 不会在数据库中的列中添加“颜色”?
【发布时间】:2015-10-13 09:17:13
【问题描述】:

这是我的路由文件夹,我将在它下面发布数据库,这个问题让我发疯,我不知道我做错了什么。

Route::post('/addAssignment', function() {
    $title = Input::get('assignment_title');
    $context = Input::get('assignment_context');
    $day = Input::get('day');
    $month = Input::get('month');
    $year = Input::get('year');
    $subject = Input::get('subject');

    $colour = DB::table('class')->where('className', $subject)->value('classColour');

    DB::table('assignments')->insert(array(
        'assignments_title' => $title,
        'assignments_context' => $context,
        'assignments_due_day' => $day,
        'assignments_due_month' => $month,
        'assignments_due_year' => $year,
        'assignments_subject' => $subject,
        'assignments_colour' => $colour ? : 'lightblue'
        ));

    return Redirect::to('/assignments');
});

如果没有发送颜色,我会创建lightblue作为默认值,并且总是lightblue,我不知道为什么,这是分配数据库的sn-p。

所以信息正在通过,但为什么它不是类表中的正确颜色? Input::get() 不能作为字符串处理吗?提前感谢您,非常感谢您的帮助。

更新: 这是我用于添加作业的表单。

@section('ModalBody')


    {!! Form::open(array("url" => 'addAssignment', "method" => 'post')) !!}
    {!! Form::select('subject', $sub) !!}

    {!! Form::selectRange('day', 1, 31, array('style'=>'width:50px;display:inline')) !!}
    {!! Form::selectMonth('month', array('style'=>'width:50px;display:inline')) !!}
    {!! Form::selectYear('year', 2015, 2100, array('style'=>'width:50px;display:inline')) !!}

    {!! Form::text('assignment_title', null, array('style' => 'width:80%', 'placeholder' => 'Title' )) !!}
    {!! Form::textarea('assignment_context', null, array('style' => 'width:80%;height:50px', 'placeholder' => 'Description' )) !!}

    {!! Form::submit("Add", array('class' => 'butn')) !!}
    {!! Form::close() !!}


@stop

这是来自查看源页面的循环

<input name="_token" type="hidden" value="5AeOlqnhanrNnTYU572FyNzTG475zS0CiuQn4xL9">
<select name="subject"><option value="0">Mathematics</option>
<option value="1">Chemistry</option>
<option value="2">Mathematics Extension 1</option>
<option value="3">Mathematics Extension 2</option>
<option value="4">Physics</option>
<option value="5">French</option></select>

【问题讨论】:

  • 您检查dd($colour); 是否正常工作?这是什么输出?
  • 它返回了一个空数组

标签: php database laravel eloquent


【解决方案1】:

我还不能发布 cmets。所以,在这行之前:

$colour = DB::table('class')->where('className', $subject)->value('classColour');

可以吗

echo $subject;
exit;

你得到了什么?

编辑:

根据我们的讨论,更改:

$subjectName = DB::table('class')->where('class_active', '1')->lists('className');

$subjectName = DB::table('class')->where('class_active', '1')->lists('className', 'className');

【讨论】:

  • 我得到'0',这可能意味着我一直在尝试寻找一个名为'0'的类...不是吗?
  • 实际上...您从选择下拉列表中选择主题` {!! Form::select('subject', $sub) !!}` 而且我认为,它只是获取第 n 个术语键,而不是值,我该如何检查呢?
  • 查看您进行选择的页面的源代码并查看值是什么。
  • 你能用循环和表单更新你的原始帖子吗?
  • 你能找出 $sub 的来源并发布吗?我们需要改变 $sub 的样子。
【解决方案2】:

我认为下面一行可能有一些问题

 $colour = DB::table('class')->where('className', $subject)->value('classColour');

替换为

$exists_color = DB::table('class')->where('className', $subject)->first();
$colour = $exists_color ? $exists_color->classColour : 'lightblue';

DB::table('assignments')->insert(array(
    'assignments_title' => $title,
    'assignments_context' => $context,
    'assignments_due_day' => $day,
    'assignments_due_month' => $month,
    'assignments_due_year' => $year,
    'assignments_subject' => $subject,
    'assignments_colour' => $colour
));

【讨论】:

  • 我做了,现在我得到这个错误 SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'assignments_colour' cannot be null (SQL: insert into assignments (assignments_title, assignments_context, assignments_due_day, assignments_due_month, assignments_due_year, assignments_subject, assignments_colour) 值(数学测试,你好,1, 1, 2015, 0, ))
  • 这行好像你没改$colour = $exists_color ? $exists_color-&gt;classColour : 'lightblue';
  • 现在它只是打印出浅蓝色,我不明白为什么当肯定有一行具有相同文本时它是空的,
  • {!! $sub[$subject[$i]] !!} 确实如此,这完全可以正常工作,它不是更早的,但谢天谢地现在可以了,但现在颜色无法正常工作
  • 所以你想说 $colour = DB::table('class')->where('className', $subject)->value('classColour');线路没有返回任何东西??? @sammorac
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 2013-06-13
  • 2020-12-29
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多