我經歷的CakePHP的新手教程,我有一個問題:undersanding CakePHP的控制器
在博客教程中,已經創造了控制器
public function index() {
$this->set('posts', $this->Post->find('all'));
}
我想下面的函數更好地理解這意味着什麼,具體來說
$this->Post->find('all')
這是對Controller對象的Post對象的引用,然後調用它的find函數。 這個Post對象是Post對象的linkedList(或其他一些數據結構)嗎?這似乎是唯一的方法,但我想確保。我習慣於Java中的OOP和PHP中OOP中的新手,並認爲我可能會缺少一些部分。
'最好的做法實際上是不使用你的Controller的find()方法'這是不準確的。最好的做法是包裝遵循「胖模型,瘦控制器」的非平凡邏輯/調用 - find('all')不適合這個,包裝這個調用除了添加抽象和刪除功能外,將參數傳遞給find調用的可能性)。 – AD7six
@ AD7six - 我不同意,但我認爲這不重要 - 很少在應用程序中使用'findAll()'。即使現在,你認爲你只需要一個'find('all')',無論如何把它放在模型中,你會感激 - 後來,當你決定需要一個''active'=> 1'條件(或類似的東西),你會希望你的發現都在一個單一的位置。更加靈活,易於更新的代碼比擔心添加抽象層更重要。 – Dave
@ AD7six - 我不知道,但現在我猜你提到了:)我們必須同意不同意。隨意在您的控制器中放置20個以上的(全部)。我會讓我的所有人都稱之爲模型的方法。當時間到了需要添加額外參數的地方時,盡情享受它們。誠然,正如我上面指出的那樣,你對這種「不準確」的推理是假設任何人實際上都使用直接的find('all')',而我很少看到它。 – Dave