記錄一個Laravel orm訪問器不起作用的問題

Table of Contents

前言

今天碼磚的時候發現laravel orm的訪問器在使用者前臺死活都用不了,但是管理員後臺卻顯示正常,一時間感到很迷亂……

問題原因

經過仔細觀察,原來後臺是先查詢然後再透過手工呼叫物件屬性的方式顯示,前臺則是查詢後直接將結果返回給使用者。

翻了下官方手冊,orm的訪問器並不是在資料庫查詢的時候起的作用,而是在呼叫相應的orm物件屬性的時候才會生效。

所以,想用訪問器的話就不要把查詢到的orm物件直接返回給客戶了,中間加一層處理就好了。

附加

根據訪問器的工作原理可知,假如資料庫查詢時限制了輸出的欄位,那麼在訪問器中被限制輸出的欄位是沒辦法用$this->field或$this->attributes[‘field’]來索引的。

2 thoughts on “記錄一個Laravel orm訪問器不起作用的問題”

Leave a Reply to 絕世壞蛋 Cancel reply

Your email address will not be published. Required fields are marked *

Captcha Code