問題標題如下: 如何在使用Validator :: extend時訪問其他輸入屬性?如何訪問Validator :: extend中的其他輸入屬性?
在檢查了Laravel的內置Validator類後,我可以看到它使用$this->data
來訪問其他屬性;但是您不能在Validator :: extend需要的閉包中直接使用$this
。
似乎手動擴展Validator類(通過自定義類)是唯一的選擇...我是否正確?如果是這樣的話,這對我來說就像是將驗證程序轉換爲包的嚴重限制,因爲每個包都會擴展基本Validator類,PHP最終會保留最後定義的擴展名(從而使其他驗證程序包不可用)。或者我錯過了什麼?
謝謝。
編輯
我也試圖把它包起來賈森·劉易斯以下this method一個包,但我不斷收到一個BadMethodCallException
指出的驗證方法找不到......包是PSR-0我很確定這不是一個命名空間問題。
你能夠使用'Input :: get()'來獲取你的閉包內的其他字段嗎? – duellsy
我沒有真正考慮過直接通過它的外觀獲取輸入。而令人驚訝的是,這**做**工作......如果將它包裝在一個包中,我不太確定依賴於外觀是否可行? – Propaganistas
使用'Input :: get()'的IMO非常黑客。如果您不想驗證不是來自請求的數據,會發生什麼情況?不完全是一個可重用的自定義驗證規則.. – SamV