【问题标题】:Input field not required (nullable) Laravel 5.6不需要输入字段(可为空)Laravel 5.6
【发布时间】:2018-12-03 14:20:30
【问题描述】:

我的联系表单有问题。除一个字段外,所有字段都是必需的。通常我会在迁移中插入可为空的,但显然,它不起作用。我试图在验证中使一个可为空的,但这也不起作用。所以我有点困惑。

public function up()
{
    Schema::create('kontaktforms', function (Blueprint $table) {
        $table->increments('id');
        $table->string('navn');
        $table->string('mobilnr');
        $table->string('fastnetnr')->nullable();
        $table->string('mail');
        $table->string('emne');
        $table->text('beskrivelse');
        $table->timestamps();
    });
}

 public function store(Request $request)
    {
        $this->validate($request, [
            'navn' => 'required',
            'mobil' => 'required',
            'email' => 'required',
            'emne' => 'required',
            'beskrivelse' => 'required'
        ]);


        $kontakt = new Kontaktform([
            'navn'  => $request['navn'],
            'mobilnr' => $request['mobil'],
            'fastnetnr' => $request['fastnetnr'],
            'mail' => $request['email'],
            'emne' => $request['emne'],
            'beskrivelse' => $request['beskrivelse']
        ]);
        $kontakt->save();
        Session::flash('success', 'Vi har nu modtaget din besked');
        return redirect()->route('kontakt.create');
    }

表格

<form id="form-contact" action="{{route('kontakt.store')}}" method="POST">
                        @csrf
                        <h1 class="display-4">Kontakt os</h1>

                        <div class="form-group">
                            <input name="navn" type="text" class="form-control" placeholder="Dit navn...">
                        </div>
                        <div class="form-group">
                            <input name="mobil" type="text" class="form-control" placeholder="Din mobil">
                        </div>
                        <div class="form-group">
                            <input name="fastnetnr" type="text" class="form-control" placeholder="Evt fastnetnr">
                        </div>
                        <div class="form-group">
                            <input name="email" type="email" class="form-control" placeholder="Din email">
                        </div>
                        <div class="form-group">
                            <input name="emne" type="text" class="form-control" placeholder="Emne">
                        </div>
                        <div class="form-group">
                            <textarea name="beskrivelse" class="form-control" placeholder="Skriv din besked her" rows="4"></textarea>
                        </div>
                        <br>
                        <input type="submit" class="btn btn-primary btn-block" value="Send">
                        <hr>
                    </form>

【问题讨论】:

  • 请显示您尝试过的代码,以及尝试后会发生什么。
  • 您已经migrate:refresh 数据库了吗?
  • 是的。我做了一个 migrate:fresh :) 它现在可以工作了。

标签: php laravel-5.6


【解决方案1】:

将可空字段迁移为

$table->string('fieldname')->nullable();

并在验证期间使用 ValidatorFormRequest 确认您没有添加必需的属性

'fieldname' => 'required|integer'

你必须只有

'fieldname' => 'integer'

【讨论】:

  • 如果这对您有用,请勾选勾选标记以接受答案,以便该答案可能对其他人有所帮助
  • 迁移表中没有 fastnetnummer 字段
  • 你是否运行回滚并再次迁移 - php artisan migrate:refresh
  • 现在可以使用了。感谢您的关注。感谢您的帮助!
【解决方案2】:

我不确定您要做什么,但表 kontaktforms 没有您尝试从控制器输入的任何名为 fastnetnr 的字段。

也许在迁移中添加字段,回滚后再次运行迁移然后尝试?

【讨论】:

  • 这就是问题所在。我做了一个新的迁移并且它有效。
猜你喜欢
  • 1970-01-01
  • 2019-01-07
  • 2019-02-22
  • 2019-10-27
  • 2016-12-18
  • 2018-05-29
  • 1970-01-01
  • 2018-06-08
  • 2021-07-11
相关资源
最近更新 更多