Justique
@Justique

Почему Yii2 ActiveRecord Model не удаляет?

Не понимаю почему ошибка Call to a member function delete()
776a1a5413d5418bb16d1ec797466dff.png
7b6858f7877544c3b78ad04645ba165e.png

Вот модель
<?php
namespace common\models;

use Yii;
use yii\base\NotSupportedException;
use yii\db\ActiveRecord;

/**
 * UserToSection model
 *
 * @property integer $id
 * @property integer $user_id
 * @property integer $section_id
 */
class UserToSection extends ActiveRecord
{
	


    /**
     * @inheritdoc
     */
    public static function findIdentity($id)
    {
        return static::findOne(['id' => $id]);
    }
	
}


Обращение к модели
$section = UserToSection::findAll([
				'user_id' => \Yii::$app->user->getId()
			]);
			print_R($section);
			$section->delete();
  • Вопрос задан
  • 866 просмотров
Решения вопроса 1
Justique
@Justique Автор вопроса
Сам задал, сам и отвечаю
$section = UserToSection::deleteAll([
				'user_id' => \Yii::$app->user->getId()
			]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
findAll возвращает массив объектов, поэтому
либо так:
$section = UserToSection::findAll(['user_id' => \Yii::$app->user->getId()]);
foreach($section as $one){
$one->delete();
}

либо так:
UserToSection::deleteAll([
        'user_id' => \Yii::$app->user->getId()
      ]);

Но учтите, что второй метод не задействует события, а значит минует beforeDelete и afterDelete. Но 1 более ресурсоемкий естественно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы