2015-12-11 76 views
0

在我的創建函數中,我將我的視圖傳遞給我然後顯示的用戶列表。不過,我已經把它改成下面Laravel 5 - 處理編輯頁面上的空選擇輸入

<select class="internalWork" name="internalWork"> 
    <option value=""></option> 
    @foreach($users as $user) 
     <option value="{{ $user->userName }}">{{ $user->userName }}</option> 
    @endforeach 
</select> 

所以顯示的列表之前,我已經添加了一個空的選項。這很好,因爲這個表列允許空輸入。

在我的編輯功能,我得到的名單

$users = User::lists('userName', 'userName'); 

然後我通過這個我編輯視圖。在我編輯的看法,我有以下

<div class="form-group"> 
    {!! Form::label('internalWork', 'Internal work for:', array('class' => 'col-sm-5 control-label red')) !!} 
    <div class="col-sm-7"> 
     {!! Form::select('internalWork', $users, null, ['class' => 'internalWork']) !!} 
    </div> 
</div> 

如果我選擇在創建,然後當我去到編輯頁面,該用戶被默認選中的用戶。但是,如果我不在創建中選擇一個用戶,則在編輯頁面上,列表中的第一個用戶默認顯示。

如何在數據庫值爲空時顯示空輸入?

感謝

回答

1

我認爲這個問題是,雖然你是在創建視圖提供了一個空的選項,你是不是在編輯視圖中這樣做。

如果在你的編輯功能,您填充您的陣列是這樣的:

$users = ['' => ''] + User::lists('userName', 'userName');

那麼我想空的選項將被選中,如果userName是空的。這基本上是將一對空對連接到您傳遞給視圖的$users數組的開頭。

您也可以考慮以相同的方式構建創建視圖 - 使用上面的代碼在您的create方法中生成$users數組,然後在視圖中使用Form外觀。

我發現這對於使用Form::select()非常有用:Creating a Select Box Field

1
@if (!empty($users) 
// the Form 
@else 
// No result 
@endif 

OR

array_unshift($users, "There are no users") // Prepend null value to $users 
... 
// Form::select(..etc