2017-03-16 150 views
1

我有一些模型Task如何返回laravel中的空記錄?

如果當前用戶有權限,然後他就可以看到所有任務

return Task::all(); 

如果當前用戶沒有這個許可,則他只能看到空單

return Task::where('id', 0)->get(); 

設計是爲了讓用戶必須總是得到一些結果,但我的函數與從Task::all()返回的數據一起工作,所以我不能返回空數組或空的Eloquent集合。

我該怎麼辦?

+0

爲什麼你不返回一個空的集合?爲什麼它應該是任務雄辯的集合?! –

+0

你將如何檢查用戶權限? – Muthu17

+0

[如何在Laravel 4中手動創建新的空Eloquent集合]可能的重複(http://stackoverflow.com/questions/23599584/how-to-manually-create-a-new-empty-eloquent-collection-in -laravel-4) –

回答

0

你不想要空數組,你不想空集合。也許你應該改變設計。無論如何,因爲你真的想傳遞一個空白的任務列表,所以在數據庫中手動插入1個任務作爲第一個任務,所以他們的ID將永遠是1 & 2。然後,你可以隨時返回那些2

return Task::whereIn('id', [1,2])->get(); 

我的建議,是實際修復設計,以期望空對象,所以你可以不喜歡

return ''; 
+0

這將您的代碼綁定到數據庫數據。只有那些特定的行存在時,你的代碼纔會起作用,並且代碼中爲什麼這些ID是硬編碼的並不明顯。 –

0

一種選擇是返回一個新創建的如果JSON模式必須完全匹配,則數組中的任務對象。它看起來是這樣的:

$emptyTask = new Task(); 
return [$emptyTask]