我有用户,我有课程。我正在尝试为用户在查看课程列表时创建“加入”按钮,以便将他们订阅到课程。
我被告知要使用
class Course extends AppModel
{
public $hasAndBelongsToMany = array('User');
}
和
class User extends AppModel
{
public $hasAndBelongsToMany = array('Course');
}
但我不知道如何实现实际按钮以及将信息发布到名为courses_users
我在哪里实现这个?
提前致谢!
答案 0 :(得分:3)
如果您是新手,我建议您使用蛋糕烘焙实用程序来检查您的表格,询问有关关系的一些问题,并为数据库中的所有基本创建,更新和删除操作构建模型,控制器和视图。然后,您可以根据需要修改它们。这就是我如何节省大量时间。
答案 1 :(得分:1)
您希望将学生ID和课程ID发送到saveAll()
方法。您可以通过您的课程控制器执行以下操作:
<?php
class CoursesController extends AppController {
public function join($courseId) {
$data = array(
'Course' => array(
'id' => $courseId
),
'Student' => array(
'id' => $this->Auth->user('id') // ID of logged in user
)
);
if ($this->Course->saveAll($data)) {
$this->Session->setFlash( __('Successfully joined course.'));
}
else {
$this->Session->setFlash( __('Error joining course.'));
}
$this->redirect('/');
}
}
这只是一个简单的例子。您需要将其调整到您的应用程序,并添加任何验证等。