【问题标题】:Laravel checkbox always emptyLaravel 复选框始终为空
【发布时间】:2015-08-20 17:52:29
【问题描述】:

我有一个似乎无法解决的奇怪问题。我有一个复选框:

{!! Form::checkbox('createDatabase', '1', true) !!}

当我提交表单时,它总是在检查时给我一个空字符串。 除非我提交表单并在其他字段上收到验证错误并重新提交,否则我会得到“1”。

我已经尝试使用 true 而不是 one 和其他一些值,但似乎没有任何效果。

奇怪的是,我以前做过很多次,但我以前从来没有过。

编辑:控制器代码

public function store(NewProjectRequest $request)
    {
        dd($request->createDatabase)
        //some more code over here but it's not related
    }

【问题讨论】:

  • 你的代码在另一边是什么样子的?你在使用 Request 对象吗?
  • 我使用 Request 类进行验证,并通过控制器中的该类访问所有内容。
  • 我们可以看看你的控制器中的代码吗?
  • 我更新了我原来的帖子。我删除了很多东西,因为它们不相关。
  • 试试$request->input('createDatabase')

标签: php laravel checkbox blade


【解决方案1】:

我认为您需要在控制器的 store 方法中使用以下代码:

    public function store(NewProjectRequest $request)
    {
        Database::create($request->all());
        return $database;
    }

以上假设这是您正在创建的具有模型的“数据库”对象。 $request->all() 是(您可能已经知道)来自表单的所有输入如何保存为数据库对象。

如果您这样做,请确保您已将所有输入设置为模型中的质量可分配,但:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Database extends Model
{
    protected $fillable = [
        'createDatabase',
        'otherInputNames'
    ];
}

【讨论】:

  • 我的代码进度不是问题,一切正常。只有一个复选框始终为空。
  • 您能否发布您的表单和数据库模型的 HTML 代码?
【解决方案2】:

感谢您的所有 cmets 和帮助。

经过几个小时的紧张调试,我能够解决问题。它与刀片或我的输入字段以及所有这些东西无关。

我的表单在第一个字段上自动完成,这是一个唯一的代码。每个键(带去抖动)我检查该代码是否确实存在于数据库中。如果该字段不存在,我会清空表单的所有字段,包括复选框。

因此,通过排除该调用上的复选框,一切都解决了。

再次感谢大家的意见!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2021-07-29
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多