您可能想查看模型关联。在您的情况下,我将有一个students
表和一个student_statuses
包含 ID 和状态名称的表。然后,在查找学生时,您还可以包括他们相应的StudentStatus
行。
这种关系如下所示:
<?php
class Student extends AppModel {
public $belongsTo = array('StudentStatus');
}
<?php
class StudentStatus extends AppModel {
public $hasMany = array('Student');
}
那么在找学生的时候……</p>
<?php
class StudentsController extends AppController {
public function index() {
$this->set('students', $this->Student->find('all'));
}
}
你会得到这样的结果:
Array
(
[0] => Array
(
[Student] => Array
(
[id] => 1
[name] => Martin Bean
[student_status_id] => 1
[created] => 2013-09-29 21:12:42
[modified] => 2013-09-29 21:12:42
)
[StudentStatus] => Array
(
[0] => Array
(
[id] => 1
[name] => Approved
[created] => 2013-09-23 18:26:06
[modified] => 2013-10-01 18:53:16
)
)
)
)
因此,您可以在视图中打印学生的状态,如下所示:
<?php foreach ($students as $student): ?>
<p>
<?php echo h($student['Student']['name']); ?>
(<?php echo h($student['StudentStatus']['name']); ?>)
</p>
<?php endforeach; ?>
您说您不想为状态创建表,但您遇到问题的原因是因为它是关系数据库的工作方式以及约定。这样做可以省去很多麻烦,而且如果您决定将来需要添加其他状态,它也是可扩展的。你可能认为你现在不会,但相信我:有一天你会的。