2016-06-15 2 views
1

У меня есть две таблицы table1 и таблица2, и я пытаюсь удалить строки в этих двух table.I имеют одинаковые значения на обоих таблице, но идентификатор отличается, поэтому я попытался, как это, мой контроллер,yii2: удалить значения в двух таблицах, используя одно действие контроллера?

public function actionDelete($id) 
{ 
$this->findModel($id); 
$select = Employee::find() 
      ->select('Name') 
      ->where(['Id' => $id]) 
      ->all(); 
$deluser=Employee::find()->where(['Id' => $id])->one()->delete() AND User::find()->where(['Name' =>$select])->one(); 
$deluser->delete(); 
return $this->redirect(['index','select'=>$select]); 
} 

пожалуйста кто поможет мне Заранее спасибо

+0

пожалуйста положить его обратно, что у вас есть изменения в вашем вопросе –

ответ

3

Класс сотрудника - это объект.

Попробуйте это:

public function actionDelete($id) 
{ 
    $this->findModel($id); 
    $select = Employee::find() 
       ->select('Name') 
       ->where(['Id' => $id]) 
       ->all(); 

    Employee::find()->where(['id' => $id])->one()->delete(); 

    User::find()->where(['id' =>$id])->one()->delete(); 

    return $this->redirect(['index','select'=>$select]); 
} 
+0

я попробовал этот путь, но PHP Фатальная ошибка - YII \ базы \ ErrorException вызов функции члена удаления() на non-object получение этой ошибки – Ammu

+0

обе таблицы имеют различное значение id, поэтому я не могу удалить, используя $ id в таблице пользователя. Но обе таблицы имеют имя столбца и одно и то же значение, поэтому, как найти имя в таблице employee, используя $ id и на основе этого имени, удалите строку в таблице пользователя. – Ammu

+0

Почему имя? почему бы не использовать какое-то отношение, например, положить идентификатор пользователя в таблицу employee как внешний ключ? –