1

我有用户,我有课程。我正在尝试在用户查看课程列表时为他们创建一个“加入”按钮,以便为他们订阅课程。

我被告知使用

class Course extends AppModel
{
  public $hasAndBelongsToMany = array('User');
}

class User extends AppModel
{
  public $hasAndBelongsToMany = array('Course');
}

但我不知道如何实现实际按钮并将信息发布到名为courses_users

我在哪里实现这个?

提前致谢!

4

2 回答 2

3

如果您是新手,我建议您使用 cake bake 实用程序来检查您的表,询问有关关系的一些问题,并为数据库中的所有基本创建、更新和删除操作构建模型、控制器和视图。然后,您可以根据需要修改它们。这就是我仍然这样做以节省大量时间的方式。

于 2013-10-07T15:14:58.163 回答
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('/');
    }
}

这只是一个简单的例子。您需要将其调整到您的应用程序,并添加任何验证等。

于 2013-10-07T15:25:03.090 回答