繁体   English   中英

Laravel5:表单模型绑定-单选按钮自动选择在创建新记录时导致问题

[英]Laravel5: Form-model binding - Radio buttons auto select causing problems when creating new record

我正在使用Form-Model绑定和相同的视图部分来创建和编辑用户。

尝试在Edit根据db值自动选择单选按钮时,默认情况下会选择正确的项目,这是预期的结果。 但是,当我尝试使用相同的partial表单创建新用户时,它会给出错误的Undefined variable: user因为我们没有在create方法上传递$user变量,这似乎是不必要的。 我该如何解决?

控制器方法:

public function create()
    {
        return view('backend/users/create');
    }
public function edit(User $user)
    return view('backend/users/edit', compact('user'));
}

表单单选按钮:

{{ Form::radio('level', 1, $user, []) }}
{{ Form::radio('level', 2, $user, []) }}
{{ Form::radio('level', 3, $user, []) }}

这是因为在create方法中没有$user var,所以请尝试如下操作:

{!! Form::radio('level', 1, isset($user) ? $user : null, []) !!}
{!! Form::radio('level', 2, isset($user) ? $user : null, []) !!}
{!! Form::radio('level', 3, isset($user) ? $user : null, []) !!}

我也将Form::radio放在{!! !!} {!! !!}因为在L5中, {{ }}将使用htmlentities转义所有html标签。

但这仍然不是好方法。 如果您要传递模型,我想您想将所有表单与模型的数据绑定,因此应在表单上绑定$user ,如下所示:

@if(isset($user))
    {!! Form::model($user, [...]) !!}
@else
    {!! Form::open([...]) !!}
@endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM