保存前传递非表单数据(CakePHP)

时间:2014-07-21 19:08:16

标签: php cakephp

课程HasMany课程。

我正在尝试在课程视图中保存课程,但希望自动分配当前的course_id,而无需选择它。

我该怎么做?

这是我的课程视图控制器:

public function view($id = null) {
        if (!$this->Course->exists($id)) {
            throw new NotFoundException(__('Invalid course'));
        }
        $options = array('conditions' => array('Course.' . $this->Course->primaryKey => $id));
        $this->set('course', $this->Course->find('first', $options));

        //Adding Lesson from Course View
        if ($this->request->is('post')) {


            $this->Course->Lesson->create();

            if ($this->Course->Lesson->save($this->request->data)) {

                $this->Session->setFlash(__('The lesson has been saved.'), array ('class' => 'alert alert-success'));
                return $this->redirect(array('controller'=> 'lessons', 'action' => 'view', $this->Course->Lesson->id));
            } else {
                $this->Session->setFlash(__('The lesson could not be saved. Please, try again.'), array ('class' => 'alert alert-danger'));
            }
        }
        $courses = $this->Course->Lesson->Course->find('list');
        $this->set(compact('courses'));


    }

目前,它正在保存课程,但没有将course_id传递给新课程。

课程模型:

public $belongsTo = array(
        'Course' => array(
            'className' => 'Course',
            'foreignKey' => 'course_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );

课程模型:

public $hasMany = array(
        'Lesson' => array(
            'className' => 'Lesson',
            'foreignKey' => 'course_id',
            'dependent' => false,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'exclusive' => '',
            'finderQuery' => '',
            'counterQuery' => ''
        )

1 个答案:

答案 0 :(得分:0)

这基本上是CakePHP: Securely setting a default value on a form的副本。

在那里查看我的答案或阅读the blog article I've wrote after that answer