我目前正在使用CakePHP开发一个库。这是我第一次使用Cake的关系数据库,我对此有疑问。
在我的画廊中,这是一个非常简单的画廊(因为它意味着可能导致最终产品的学习体验),我有一个单一的关系集:
首先,有两种模式:专辑和图像。相册通过HasMany关系与图像相关,而图像属于相册(通过BelongsTo关系)。我已经在cakePHP上建立了数据库关系,没有任何问题。
以防万一,这里是php中两个类的定义:
专辑:
<?php
class Album extends AppModel {
public $name = 'Album';
public $hasMany = array(
'Image' => array(
'className' => 'Image',
'order' => 'Image.added DESC',
'dependent' => true
)
);
public $validate = array(
'name' => array(
'rule' => 'notEmpty'
),
'description' => array(
)
);
}
?>
For Image:
<?php
class Image extends AppModel {
public $name = 'Image';
public $belongsTo = 'Album';
}
?>
Image类仍然没有验证,因为我开始使用它。现在,我可以使用控制器页面中的一个简单功能轻松添加相册:
public function add() {
if ($this->request->is('post')) {
$this->Album->create();
if ($this->Album->save($this->request->data)) {
$this->Session->setFlash('Your album has been created.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to create your album.');
}
}
}
除了add函数的视图文件中的一个简单函数:
<?php
echo $this->Form->create('Album');
echo $this->Form->input('name');
echo $this->Form->input('description');
echo $this->Form->end('Save Album');
?>
但是,我不知道如何添加图像。当然,我可以使用像专辑一样的代码,但我究竟如何设置图像所属的专辑呢?我搜索并发现了很多关于如何建立关系的问题,但没有关于如何将关系数据实际添加到已经建立的数据库的问题。对此有何帮助?
请注意,我具体询问如何将数据放入关系模型之后的数据库中。我已经知道如何使用cakephp处理图像本身,这是我想知道的整个添加关系数据:)
提前致谢!
答案 0 :(得分:1)
创建一个选择:
你的ImagesController中的
public function add() {
//
// ...
//
$albums = $this->Image->Album->find('list');
$this->set('albums', $albums);
}
你的add.ctp视图文件中的某个地方
echo $this->Form->input('album_id');