@tincap

Как выбрать объект ActiveRecord, если в классе есть свои аргументы в Yii2?

Есть класс

/**
 * В таблице есть только одно поле - id
 * @property integer $id
 */
class Spider extends ActiveRecord
{
    private $name; // это дополнительный аргумент, которого нет в таблице

    public function __construct($name = null)
    {
        $this->name = $name;
    }
}


Если где-то теперь я захочу удалить столбец, то ничего не выйдет, так как это не объект ActiveRecord

// Не удалится, так как $spider не является объектом ActiveRecord
// Там есть добавленный аргумент $name;
$spider->delete();


Как мне из $spider вытащить ActiveRecord объект?

P.S.

Если сделать print_r($spider), то выйдет

(
$name -> string 'name',
private ActiveRecord -> Spider Object
)
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Как это не является? Вполне является, если вы правильно решили вопрос с namespace.
Вопрос только в том, что delete действует только на существующие записи в базе данных, то есть, фактически, исполняет запрос DELETE FROM `table` WHERE `id`=:id
Но так как это isNewRecord - удалять там нечего.
Вам нужно объяснить задачу более подробно - что вы храните в этой таблице и объекте и что собираетесь удалять?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы