Метод заполнения Laravel 5 не получает все атрибуты - PullRequest
0 голосов
/ 12 января 2019

Я получаю данные из блэйд-формы с использованием платформы laravel 5.6. Когда я попадаю на страницу сводки, на странице отображается только атрибут фамилии. Проверка этого шага моей формы с помощью функции dump и die показывает, что мои $ встречи хранят только lastName, но не другие атрибуты.

Я проверил свои соглашения об именах, а также изменил модель с защищенного $ guarded = []; для защищенного $ fillable = [val1 и т. д.];

create-step1.blade.php:
<div class="row">
            <label>First Name</label>
        </div>
        <div class="row">
            <input type="text" value="{{{ $meetings->firstName or '' }}}" 
class="form-control" id="_firstName" name="firstName"/>
        </div>
        <br>
        <div class="row">
            <label>Last Name</label>
        </div>
        <div class="row">
            <input type="text" value="{{{$meetings->lastName or ''}}}" 
class="form-control" id="_lastName" name="lastName"/>
        </div>
        <br>
        <div class="row">
            <label>Email address</label>
        </div>
        <div class="row">
            <input type="text" value="{{{$meetings->email or ''}}}" 
class="form-control" id="_email" name="email_address"/>
        </div>
        <br>
        <div class="row">
            <label>Phone Number</label>
        </div>
        <div class="row">
            <input type="text" value="{{{$meetings->phoneNum or ''}}}" 
class="form-control" id="_phoneNum" name="phone_number"/>
        </div>
    </div>

meetingsController.php code:
public function postCreateStep1(Request $request)
{
    $validatedData = $request->validate([
        'firstName'=> 'required|min:3',
        'lastName'=> 'required|min:3',
        'email_address'=>'required|email',
        'phone_number'=>'required|min:10',
    ]);

    if(empty($request->session()->get('meetings'))){
        $meetings = new Meetings();
        $meetings->fill($validatedData);
        $request->session()->put('meetings', $meetings);
    }else{
        $meetings = $request->session()->get('meetings');
        $meetings->fill($validatedData);
        $request->session()->put('meetings', $meetings);
    }
    dd($meetings);
    return redirect('/meetings/create-step2');
}

meetings.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Meetings extends Model
{
    protected $fillable =[
      'firtName',
      'lastName',
      'email',
      'phoneNum',
      'meetingType',
      'location',
      'datetime',
       ];
       //protected $table = "meetings";
 }


Meetings {#163 ▼
#fillable: array:7 [▼
0 => "firtName"
1 => "lastName"
2 => "email"
3 => "phoneNum"
4 => "meetingType"
5 => "location"
6 => "datetime"
]
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: array:1 [▼
"lastName" => "Lord"
]
#original: []
#changes: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#guarded: array:1 [▶]
}

1 Ответ

0 голосов
/ 12 января 2019

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

$form->first name !== $meeting->firtName
$form->email_address !== $meeting->email
$form->phone_number !== $meeting->phoneNum

Только lastName одинаково на обоих, поэтому заполняет, как вы ожидаете. Если вы собираетесь использовать ->fill(), ваши имена форм должны соответствовать атрибутам Meeting.

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