在我的控制,我有:Laravel覆蓋指定者自定義參數
$Locations = Locations::where(something);
$Locations->get()->toArray(true);
和模型裏面:
function toArray($include_all = false) {
var_dump($include_all);
}
將包括所有的變量是假的,雖然功能被調用。 它有這樣做的原因嗎?
我想調用自定義的指定者,因爲我有,我想換不同的結構更一對多關係(其中一些是序列化爲例)
謝謝
是的,但我將不得不使用 - >地圖()每次我做數據庫的時間查詢,我想在模型的toArray()函數內部執行它,所以我不需要複製代碼 – Scobee
你可以編寫一個包含所有邏輯的函數,例如: 'function myFunc($ arg){return //映射邏輯}''Model :: someQuery() - > get() - > map('myFunc') - > toArray();' 'toArray()'的作業只是將項目集合轉換爲數組,沒有更多。 – Morilog
還應該注意''get''總是返回'Illuminate \ Support \ Collection'的一個實例。此外,' - > toArray()'是由'Illuminate \ Support \ Collection'提供的一種方法,因此覆蓋它似乎不是一種理智的方法。該映射確實看起來像是去這裏的正確方法。 – Ohgodwhy