首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Formbuilder模型绑定

Laravel Formbuilder模型绑定
EN

Stack Overflow用户
提问于 2016-02-03 22:33:21
回答 1查看 452关注 0票数 1

我正在处理下面的代码。试图利用LaravelFormBuilder的模型绑定效果。

代码语言:javascript
复制
{!! Form::model($contact,['method' => 'PUT', 'url' => URL::route('contact.put', $contact),'accept-charset' => 'UTF-8', 'enctype' => 'multipart/form-data']) !!}

<div class="form-group">
    {!! Form::label('','First Name') !!}
    {!! Form::text('first_name','', ['class' => 'form-control','required' => 'required']) !!}
</div>

...

{!! Form::close() !!}

这是非常好的股票代码,它取自较早的文档,它可以按预期更新信息,但我无法获得模型绑定来填充Text Input Field first_name的值。奇怪的是,如果我用股票html代码创建它,如下所示:

代码语言:javascript
复制
<input type="text" class="form-control" name="first_name" id="first_name" value="{{$contact->first_name}}" required="required">

它将填写值的罚款,那么什么是缺少的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 23:37:57

这是因为你正在传递一个空的字符串。除非您有要设置的预定义值,否则应该传递一个空值,如下所示:

代码语言:javascript
复制
{!! Form::text('first_name', null, ['class' => 'form-control','required' => 'required']) !!}

为什么会发生这种情况?

这是代码中填充输入值的部分:

代码语言:javascript
复制
public function getValueAttribute($name, $value = null)
{
    if (is_null($name)) {
        return $value;
    }
    if (! is_null($this->old($name))) {
        return $this->old($name);
    }
    if (! is_null($value)) {
        return $value;
    }
    if (isset($this->model)) {
        return $this->getModelValueAttribute($name);
    }
}

你应该关注的是第三个if声明。您正在传递一个空字符串,该字符串不是空值,因此它假定您知道要传递什么作为默认值。

但是,如果传入一个空值,它将跳过第三个if语句并移动到第四个if语句,该语句从模型中检索值。

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

https://stackoverflow.com/questions/35189082

复制
相关文章

相似问题

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