2016-07-11 3 views
1

Это странная проблема, с которой я столкнулся. У меня есть форма, в которой используются First, Last, Title, Email и Phone, которые берут эти данные и вводят в таблицу ContactPerson, которую я установил в базе данных.Laravel inserting "null" в базу данных из формы ввода.

Когда я заполняю форму и нажимаю «отправить», в базу данных правильно вставлены только заголовок, адрес электронной почты и номер телефона. Первое и последнее имя вставляются как NULL.

Вот некоторые из моего кода, что я с помощью PhpStorm и Laravel 2.5.3

Моя Создать новый вид Контакт:

<h1 style="text-align:center;">Add A New Contact Person</h1> 
 

 
    <hr/> 
 

 
    {!! Form::open(['url' => '/create']) !!} 
 

 
    <span style="text-align:center;align-content:right;display:block; margin-right:auto;margin-left:auto;"> 
 

 
     <div class="form"> 
 
      {!! Form::label('first', 'First Name: ') !!} 
 
      {!! Form::text('First', null, ['class' => 'form']) !!} 
 
     </div> 
 

 
     <div class="form"> 
 
      {!! Form::label('last', 'Last Name: ') !!} 
 
      {!! Form::text('Last', null, ['class' => 'form']) !!} 
 
     </div> 
 

 
     <div class="form"> 
 
      {!! Form::label('title', 'Title: ') !!} 
 
      {!! Form::text('Title', null, ['class' => 'form']) !!} 
 
     </div> 
 

 
     <div class="form"> 
 
      {!! Form::label('email', 'Email: ') !!} 
 
      {!! Form::text('Email', null, ['class' => 'form']) !!} 
 
     </div> 
 

 
     <div class="form"> 
 
      {!! Form::label('phone', 'Phone: ') !!} 
 
      {!! Form::text('Phone', null, ['class' => 'form']) !!} 
 
     </div> 
 

 
     {!! Form::submit('Submit', ['class' => 'btn btn-primary form']) !!} 
 

 
    </span> 
 
    {!! Form::close() !!}

Вот мой контроллер называется ResourceController I создало:

class ResourceController extends Controller 
 
{ 
 
    public function resource() 
 
    { 
 
     $contacts = ContactPerson::all(); 
 

 
     return view('pages.resource', compact('contacts'));  
 
    } 
 

 
    public function create() 
 
    { 
 
     return view('pages.create'); 
 
    } 
 

 
    public function store(Requests\CreateNewContactRequest $request) 
 
    { 
 
     ContactPerson::create($request->all()); 
 

 
     return redirect('resource'); 
 
    } 
 
}

Вот подтверждение я настроил в классе CreateNewContactRequest для формы:

public function rules() 
 
{ 
 
    return [ 
 
     'First' => 'required|min:2', 
 
     'Last' => 'required|min:1', 
 
     'Title' => 'required|min:2', 
 
     'Email' => 'required|Email|unique:users', 
 
     'Phone' => 'required|numeric|min:9' 
 
    ]; 
 
}

Вот как это выглядит, когда я заполняю/отправить форму.

Creating new contact

После удара отправить перенаправляет на свалку базы данных: after submitting

вид базы данных после вставки: database

+0

проверить, что Фейлд имена соответствуют вашей схеме также, что заполняемые переменному все эти поля, чтобы они могли добавить. –

ответ

0

Глядя на ваши данные дампа, ваши имена полей должны соответствуют вашим названиям форм или наоборот, поэтому ваши имена форм необходимо изменить, чтобы сказать:

<div class="form"> 
     {!! Form::label('first', 'First Name: ') !!} 
     {!! Form::text('First_Name', null, ['class' => 'form']) !!} 
    </div> 

    <div class="form"> 
     {!! Form::label('last', 'Last Name: ') !!} 
     {!! Form::text('Last_Name', null, ['class' => 'form']) !!} 
    </div> 

EG для имени поля First_Name вашего вход должен быть назван тот же name="First_Name"

также убедившись, что ваша заполняемых деталь также правильно

protected $fillabel = ['First_Name','Last_Name','Title','Email','Phone']; 
Смежные вопросы