【问题标题】:How to delete Foreigen key constraint from table in yii2?如何从yii2中的表中删除外键约束?
【发布时间】:2016-01-04 08:15:17
【问题描述】:

actionDelete 中,我编写了从所有表中获取 fk 的查询并创建了 activeDataProvider。并编写了一个 foreach 循环以逐个获取元素。

$query = new \yii\db\Query;
        $query->select('practiceCode')->from('member','plan','offer','appointment','product','incentive','clinic','complaint')
        ->where(['practiceCode' => $model->practiceCode])->all();
        $query->createCommand();
        $dataProvider= new ActiveDataProvider([
            'query' => $query,
            'pagination' => false,
       ]);
        $models = $dataProvider->getModels();
        if(count($models) >= 1) {
            $memberModel = new Member();
               foreach ($models as $k) {
                   $k['deleted'] = 'Y';
                  //$memberModel->save();

$connection->createCommand()->update('member', ['deleted' => 'Y'], ['practiceCode' => $models['practiceCode']])->execute();

现在可以了 对所有表逐一考虑

            }
        return $this->redirect(['index']);

我对如何在所有表中保存这个标志“Y”感到不安

【问题讨论】:

  • 你想删除所有包含 practiceCode 作为外键的记录吗?对吗?
  • 是的,我想删除所有包含 practiceCode as fk 的记录
  • 所以我想你想使用关系来删除它。目前你遇到了什么错误?
  • 我如何使用关系?你能解释一下
  • 即:$oModel = ModelName::find()->with('originaltable_name')->where(['practiceCode' => $your_value])->all();您将选择您的记录并删除。您将使用 with() 定义您的关系

标签: php yii2 dataprovider


【解决方案1】:

即:$oModel = ModelName::find()->with('originaltable_name')->where(['practiceCode' => $your_value])->all(); 您将选择您的记录并删除。您将使用 with() 定义您的关系

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多