首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5 fill方法未获取所有属性

Laravel 5 fill方法未获取所有属性
EN

Stack Overflow用户
提问于 2019-01-12 15:54:21
回答 1查看 766关注 0票数 0

我正在使用laravel 5.6框架从刀片表单中获取数据,当我到达摘要页面时,该页面仅显示姓氏属性。使用转储和模具函数检查表单中的步骤,可以发现$meetings只存储了lastName,而没有存储其他属性。

我检查了我的命名习惯,并将模型从protected $guarded =[];更改为protected $fillable =val1,依此类推;

代码语言:javascript
复制
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 [▶]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-12 18:58:59

这是因为您的公司值中的输入名称与您的会议类属性不完全相同:

代码语言:javascript
复制
$form->first name !== $meeting->firtName
$form->email_address !== $meeting->email
$form->phone_number !== $meeting->phoneNum

只有lastName在这两者上是相同的,这就是为什么它会像您所期望的那样填充。如果要使用->fill(),则表单名称必须与会议属性相匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54157739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档