Поле ввода не требуется (обнуляется) Laravel 5.6 - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с моей контактной формой.Все поля обязательны для заполнения, кроме одного.Обычно я в миграции вставляю nullable, но, видимо, это не работает.Я пытался сделать nullable в проверке, но это тоже не работает.Так что я немного растерялся.

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>

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Я не уверен, что вы пытаетесь сделать, но в таблице kontaktforms нет поля с именем fastnetnr, которое вы пытаетесь ввести с вашего контроллера.

Возможно, добавьте поле в полемиграция, запустите миграцию снова после отката и попробуйте?

0 голосов
/ 03 декабря 2018

Выполните миграцию для обнуляемого поля как

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

и во время проверки с помощью Validator или FormRequest подтвердите, что вы не добавили обязательный атрибут

'fieldname' => 'required|integer'

у вас должно быть только

'fieldname' => 'integer'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...