gpt4 book ai didi

php - Laravel Form-Model Binding 多选默认值

转载 作者:技术小花猫 更新时间:2023-10-29 12:55:25 25 4
gpt4 key购买 nike

我正在尝试将默认值绑定(bind)到选择标签。 (在“编辑 View ”中)。

我知道这应该很容易,但我想我遗漏了一些东西。

我有:

User.php(我的用户模型)

...
public function groups()
{
return $this->belongsToMany('App\Group');
}

public function getGroupListAttribute()
{
return $this->groups->lists('id');
}
...

UserController.php(我的 Controller )

...
public function edit(User $user)
{
$groups = Group::lists('name', 'id');

return view('users.admin.edit', compact('user', 'groups'));
}
...

edit.blade.php( View )

...
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['UserController@update', $user->id]]) !!}
...

...
// the form should be binded by the attribute 'group_list' created
// at the second block of 'User.php'
// performing a $user->group_list gets me the correct values
{!! Form::select('group_list[]', $groups, null, [
'class' => 'form-control',
'id' => 'grouplist',
'multiple' => true
]) !!}
...

我在我的 Blade 上做了一个模拟测试,得到了正确的结果:

@foreach ($user->group_list as $item)
{{ $item }}
@endforeach

这列出了默认情况下应选择的值。

我还尝试将 $user->group_list 作为 Form::select 的第三个参数,但这并没有奏效......

我不知道我做错了什么..关于这个有什么提示吗?

编辑

当我这样做时:

public function getGroupListAttribute()
{
//return $this->groups->lists('id');
return [1,5];
}

项目被正确选择,

现在我知道我必须从集合中获取一个数组..深入挖掘.. :)

找到了

用户.php:

...
public function getGroupListAttribute()
{
return $this->groups->lists('id')->toArray();
}
...

可以更简单吗?

您好,

克里斯托夫

最佳答案

您不应该将 null 放在 selected defaults(第三个)参数中。

{!! Form::model($user, ['route' => ['user.update', $user->id]]) !!}

{!! Form::select(
'group_list[]',
$groups,
$user->group_list,
['multiple' => true]
)
!!}

关于php - Laravel Form-Model Binding 多选默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com