Câu trả lời là trong liên kết tài liệu của bạn, model()
là một phương pháp cấp lớp, và nó:
Trả lại mô hình tĩnh của lớp AR được chỉ định. Mô hình được trả về là một cá thể tĩnh của lớp AR. Nó được cung cấp cho cách gọi phương pháp lớp cấp
Hãy nói rằng bạn làm (một cái gì đó tương tự như phương pháp lớp tĩnh.): $model=CActiveRecord::model('Project');
, sau đó sử dụng mà $model
bạn có thể gọi tất cả các phương pháp cấp lớp của CActiveRecord, như:
$allModels = $model->findAll(); // will give you all the models of Project
$someModel = $model->findByPk('pkValue'); // will give you the row with primary key value = pkValue
$model->deleteAll(); // will delete all the records of Project
// and so on
Edit:
Cũng this post trong diễn đàn này nói: (Chênh lệch giữa mức lớp và tĩnh gặp hods)
Phương thức cấp lớp có hiệu quả Phương pháp tĩnh NHƯNG với lợi ích có thể sử dụng thừa kế. Tức là, bạn có thể ghi đè lên hoạt động của một Phương thức Cấp Lớp trong một lớp con, trong khi nếu bạn sử dụng một phương thức tĩnh, bạn sẽ không thể ghi đè nó. .... Vì vậy, nói chung, bạn nên sử dụng các phương thức mức lớp, không phải các phương thức tĩnh, vì nó mang lại cho bạn lợi ích của việc thừa kế mặc dù nó có thể hơi lạ. Sau đó, bạn gọi chúng bằng cách sử dụng $ class :: model() -> method().
Nguồn
2012-06-21 05:05:46
Đã làm việc với Yii trong một vài tháng, tôi thấy thật kỳ lạ khi lớp ActiveRecord xử lý cả ActiveRecord và mô hình. Nó chỉ cảm thấy kỳ lạ với tôi. –