我目前正在使用 CakePHP 制作画廊。这是我第一次将关系数据库与 Cake 一起使用,我对此有疑问。
在我的画廊中,现在是一个非常简单的画廊(因为它是一种可能导致最终产品的学习体验),我有一个单一的关系集:
首先,有两种模型:Album 和 Image。专辑通过 HasMany 关系与 Image 相关,而 Image 属于专辑(通过 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(
)
);
}
?>
对于图像:
<?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.');
}
}
}
以及视图文件中用于添加功能的简单功能:
<?php
echo $this->Form->create('Album');
echo $this->Form->input('name');
echo $this->Form->input('description');
echo $this->Form->end('Save Album');
?>
但是,我不知道如何添加图像。当然,我可以使用像专辑一样的代码,但是我该如何设置图像所属的专辑呢?我已经搜索并发现了大量关于如何建立关系的问题,但没有关于如何将关系数据实际添加到已经建立的数据库的问题。有什么帮助吗?
请注意,我特别询问如何按照关系模型将数据放入数据库中。我已经知道如何用 cakephp 自己处理图像,这是我想知道的整个添加关系数据:)
提前致谢!