我正在使用CakePHP 2.8.x,我正在寻找一种方法,通过1次删除操作从2个表中删除记录。
我从3个表创建了一个视图:访问者,访客和注册。这些表通过visitor_id连接。
在访客模型中,我在$useTable
中添加了视图。现在,当我按下删除时,例如访问者1,我想从访问者1的访客和注册表中删除记录,并将访问者信息保存在访问者的表中
我确实找到了$this->Visitor->delete($id)
,但是我需要将哪些参数添加到此函数中,所以我只能删除来宾和注册表中的记录?
如果我需要提供更多信息,我很乐意提供帮助! Thx提前
更新:表格已关联。这些是模型:
访问者:
public $hasMany = array(
'Guest' => array(
'className' => 'Guest',
'foreignKey' => 'visitor_id',
'dependent' => false,
'exclusive' => false,
),
'Registration' => array(
'className' => Registration',
'foreignKey' => 'visitor_id',
'dependent' => false,
'exclusive' => false,
),
);
public $belongsTo = array(
);
注册:
public $belongsTo = array(
'Visitor' => array(
'className' => 'Visitor',
'foreignKey' => 'visitor_id',
),
);
旅客:
public $belongsTo = array(
'Visitor' => array(
'className' => 'Visitor',
'foreignKey' => 'visitor_id',
),
答案 0 :(得分:3)
蛋糕2中的Route::get('/{name?}', array('as' => 'profile', 'uses' => 'UsersController@profile'));
功能(参见cookbook)
你必须向函数传递一系列条件。在您的情况下,您要删除(: kmp-search : (All (A) (Vectorof A) (Vectorof A) Integer -> Integer))
(define (kmp-search pattern text [next-offset 0])
3)
的所有deleteAll()
(Guests
的相同内容)。
visitor_id = $id
这将删除Registration
的所有$this->Visitor->Guest->deleteAll(array('visitor_id' => $id));
$this->Visitor->Registration->deleteAll(array('visitor_id' => $id));
和Guests
,而不会触及Registrations
本身
答案 1 :(得分:0)
你可以尝试一下,它对我有用
public function your_action($id=null){
$this->MainMdel->ConnectedModel1->deleteAll(array('ConnectedModel_id' => $id));
$this->MainMdel->ConnectedModel2->deleteAll(array('ConnectedModel_id' => $id));
}