我在yii2 2高级应用程序中使用curd生成(使用表status)创建了一个curd。而curd(创建、查看、编辑、删除)正在正常工作。
现在我已经创建了一个新的表relation (id, user_id, status_id),其中user_id是user表的外键,status_id也是status表的外键。
现在,我想更新更新relation表上的status表。
例如, :
1)如果用户test (user_id是1)创建了新的status,那么relation表中将有一个新条目,如relation (1, 1, {status_id just created by user})。
2)如果用户删除状态,那么带有此status_id的行也将从relation表中删除。
( 3)这些创建的状态仅对user_id 1可见,仅对其他用户不可见。
我是这个框架的新手,所以请指导我如何在我的应用程序中实现这个场景?
提前谢谢。
发布于 2017-08-01 10:46:38
您应该在模型中添加一个“前删除”函数,如下所示:
public function beforeDelete(){
if ( $this->getRelations()->count()!=0){
foreach($this->getRelations() as $relation)
{
if (Yii::$app->user->identity->id == $relation->user_id){
$relation->delete();
}
}
}
}另外,您还可以在控制器中更改AccessControl!
https://stackoverflow.com/questions/43718977
复制相似问题