thinkphp3.1.3源碼分析(3)連貫操作table方法

看Thinkphp官方的CURD的操作說明中說到了table()方法,但是你進入/ThinkPHP/Core/Model.class.php卻看不到這個table()方法,但是其他連貫操作中的方法都能找到,是如何實現的呢?下面一起分析下吧!

方法/步驟

編輯ThinkPHP/Core/Model.class.php查看代碼,一天到晚的寫CURD對PHP魔術方法都幾乎不關心了。所以這裡就用到了__call()方法。利用__call方法實現一些特殊的Model方法。

當調用一個上下文都不存在的方法的時候。調用table()和Table()方法的時候,table字符串在$this->methods中能找到,所以走:

$this->options[strtolower($method)] =   $args[0];

最後是不是又調用了ThinkPHP/Lib/Core/Db.class.php裡面的parseTable()方法,

這樣就發現可以傳入一個索引數組,最後組成多表查詢了。

但是在哪裡執行的調用我還沒有找到。。也不確定。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場