Имеется экшен, который должен удалять запись из БД.
Он принимает id записи, посланный методом post.
После вызова, возвращает ошибку, однако метод delete() срабатывает.
В чём ошибка?
/**
* @return string
*
* Delete vacancy action
*/
public function actionDelete()
{
/* @var $currentUser User */
$currentUser = Yii::$app->user->identity;
if(Yii::$app->user->isGuest || $currentUser->isUser()) {
return $this->goHome();
}
$model = new Vacancy();
Yii::$app->response->format = Response::FORMAT_JSON;
// получаем id поста, на который пожаловались
// по методу post
$id = Yii::$app->request->post('id');
// находим вакансию
$vacancy = $model->getVacancyById($id);
// на всякий случай, проверяем, является ли
// пользователь автором вакансии
if($currentUser->getId() != $vacancy->user_id ) {
return $this->goHome();
}
if($vacancy->delete()) {
return $this->redirect(Url::to(['/user/profile/view', 'id' => $currentUser->getId()]));
}
return [
'success' => false,
'text' => 'Error',
];
}
Метод getVacancyById
/**
* @param $id
* @return array|null|\yii\db\ActiveRecord
*
* get vacancy by id
*/
public function getVacancyById($id)
{
return $this->find()->where(['id' => $id])->one();
}