Tôi đang cố gắng ràng buộc một giá trị mặc định cho một thẻ được chọn. (trong "chế độ xem chỉnh sửa").Ràng buộc kiểu mẫu-mô hình Laravel đa chọn giá trị mặc định
Tôi biết điều này sẽ dễ dàng, nhưng tôi nghĩ tôi đang thiếu điều gì đó.
tôi có:
user.php (mô hình người dùng của tôi)
...
public function groups()
{
return $this->belongsToMany('App\Group');
}
public function getGroupListAttribute()
{
return $this->groups->lists('id');
}
...
UserController.php (điều khiển của tôi)
...
public function edit(User $user)
{
$groups = Group::lists('name', 'id');
return view('users.admin.edit', compact('user', 'groups'));
}
...
edit.blade.php (chế độ xem)
...
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $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
]) !!}
...
Tôi đã làm một thử nghiệm giả trong lưỡi của tôi, và đã nhận được kết quả chính xác:
@foreach ($user->group_list as $item)
{{ $item }}
@endforeach
này liệt kê các giá trị mà nên được chọn theo mặc định ..
Tôi cũng đã cố gắng để đưa $user->group_list
làm thông số thứ ba từ Form::select
, nhưng điều này không làm việc ête ...
Tôi không có đầu mối gì tôi đang làm sai .. bất kỳ gợi ý nào về điều này?
chỉnh sửa
khi tôi làm:
public function getGroupListAttribute()
{
//return $this->groups->lists('id');
return [1,5];
}
Các mục được lựa chọn một cách chính xác,
bây giờ tôi biết tôi phải lấy một mảng từ bộ sưu tập .. đào sâu hơn. . :)
tìm thấy nó
user.php:
...
public function getGroupListAttribute()
{
return $this->groups->lists('id')->toArray();
}
...
nó có thể được dễ dàng hơn?
đẹp regards,
Kristof
jus FYI, bạn có thể làm điều đó mà không cần phải khai báo getGroupListAttribute() 'phương pháp 'trong' User.php' – xhulio
tôi đã phải đối mặt với một vấn đề tương tự, thay vì sử dụng * vô * trong tham số thứ 3 của * Biểu mẫu :: chọn * trong chế độ xem edit.blade của bạn, đặt thuộc tính $ user của bạn. Sẽ giống như '$ user-> groups'. Tôi đã làm điều này với dropdowns phần tử đơn lẻ, nhưng bạn phải kiểm tra điều này với nhiều phần tử. – alariva