我有一些模型Task
。如何返回laravel中的空記錄?
如果當前用戶有權限,然後他就可以看到所有任務
return Task::all();
如果當前用戶沒有這個許可,則他只能看到空單
return Task::where('id', 0)->get();
設計是爲了讓用戶必須總是得到一些結果,但我的函數與從Task::all()
返回的數據一起工作,所以我不能返回空數組或空的Eloquent集合。
我該怎麼辦?
我有一些模型Task
。如何返回laravel中的空記錄?
如果當前用戶有權限,然後他就可以看到所有任務
return Task::all();
如果當前用戶沒有這個許可,則他只能看到空單
return Task::where('id', 0)->get();
設計是爲了讓用戶必須總是得到一些結果,但我的函數與從Task::all()
返回的數據一起工作,所以我不能返回空數組或空的Eloquent集合。
我該怎麼辦?
你不想要空數組,你不想空集合。也許你應該改變設計。無論如何,因爲你真的想傳遞一個空白的任務列表,所以在數據庫中手動插入1個任務作爲第一個任務,所以他們的ID將永遠是1 & 2。然後,你可以隨時返回那些2
return Task::whereIn('id', [1,2])->get();
我的建議,是實際修復設計,以期望空對象,所以你可以不喜歡
return '';
這將您的代碼綁定到數據庫數據。只有那些特定的行存在時,你的代碼纔會起作用,並且代碼中爲什麼這些ID是硬編碼的並不明顯。 –
一種選擇是返回一個新創建的如果JSON模式必須完全匹配,則數組中的任務對象。它看起來是這樣的:
$emptyTask = new Task();
return [$emptyTask]
爲什麼你不返回一個空的集合?爲什麼它應該是任務雄辯的集合?! –
你將如何檢查用戶權限? – Muthu17
[如何在Laravel 4中手動創建新的空Eloquent集合]可能的重複(http://stackoverflow.com/questions/23599584/how-to-manually-create-a-new-empty-eloquent-collection-in -laravel-4) –