我有ProductsController
一个添加视图,作为自动完成字段('brand_name'),用户可以在其中输入品牌名称。在我的处理程序中,我想检查数据库中是否已存在品牌名称,应在产品上设置品牌 ID。如果数据库中不存在,则应创建一个新品牌并将其插入数据库中。
下面的代码被简化:
应用程序/模型/Product.php
class Product extends AppModel {
public $belongsTo = array('Brand');
}
应用程序/控制器/ProductsController.php
class ProductsController extends AppController {
public $helpers = array('Html', 'Form', 'Session');
public $components = array('Session');
public function add() {
if ($this->request->is('post')) {
$this->Product->create();
$brand = $this->Product->Brand->find(
'first',
array(
'conditions' => array(
'Brand.name' => $this->request->data['Product']['brand_name']
)
)
);
if($brand)
{
$this->request->data['Product']['brand_id'] = intval($brand['Brand']['id']);
}
else
{
// Add new brand
//$this->Product->Brand->create();
$this->Product->Brand->name = $this->request->data['Product']['brand_name'];
}
if ($this->Product->saveAll($this->request->data)) {
$this->Session->setFlash(__('The product has been saved.'));
//$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('Unable to add the product.'));
}
}
}
}
一切正常,除了创建和插入新的 Brand 对象。如何在代码中创建此对象?我是 CakePHP 的新手,所以如果我的方法有误,请告诉我。