【发布时间】:2012-01-02 19:10:17
【问题描述】:
我应该使用 __construct 选项来创建新记录吗?下面是我称之为“课程”的课程。我实际上只会在 25% 的时间里“创建”一门课程,其余时间我会想查找课程等等。
class Course {
private $db;
function __construct($db, $data) {
global $error, $mysqli;
$this->db = $db;
requireOrError($data['course_type_id'], "Course Type Required");
requireOrError($data['instructor_id'], "Instructor Required");
requireOrError($data['dz_name'], "DZ Name Required");
requireOrError($data['dz_address'], "DZ Address Required");
requireOrError($data['dz_city'], "DZ City Required");
requireOrError($data['dz_state'], "DZ State Required");
requireOrError($data['dz_zip'], "DZ Zip Required");
requireOrError($data['dz_email'], "DZ Email Required");
requireOrError($data['start_date'], "Course Start Date Required");
requireOrError($data['end_date'], "Course End Date Required");
requireOrError($data['student_slots'], "Number Of Student Slots Required");
if(! is_numeric($data['student_slots'])) {
$error[] = "Invalid Student Slots - Must be a number";
}
setError($error);
if(empty($error)) {
$add = $mysqli->query("INSERT INTO " . $this->db['courses'] . " (course_type_id, instructor_id, dz_name, dz_address, dz_city, dz_state, dz_zip, dz_email, start_date, end_date, student_slots, notes) VALUES ('$data[course_type_id]', '$data[instructor_id]', '$data[dz_name]', '$data[dz_address]', '$data[dz_city]', '$data[dz_state]', '$data[dz_zip]', '$data[dz_email]', '$data[start_date]', '$data[end_date]', '$data[student_slots]', '$data[notes]')");
redirectTo("instructors.php");
}
}
}
我打算创建一个名为“getCourseInfo”的函数,我可以在其中传递一个 ID,它会返回课程对象。这是最好的方法吗,或者,我应该改变 __construct 行为来创建。另外,你能给我一个如何创建/查找的例子吗?
谢谢!
【问题讨论】:
-
对于构造函数来说太忙了,并且假设您总是想插入一条记录。为什么不简单地让构造函数做一些基本的设置,然后提供“createRecord”和“validateData”方法?
标签: php