2016-08-02 3 views
1

У меня есть parent_id, который может иметь NULL Значение - по умолчанию установлено .Правило проверки внешнего ключа в Yii2

Модель

... 
[['parent_id'], 'integer'], 
[['parent_id'], 'default', 'value' => 0], 
[['parent_id'], 'exist', 'targetAttribute' => 'id', 'skipOnEmpty' => true], 
... 

Но существует правило не работает.

Что я делаю неправильно?

UPDATE

Сегодня я удалил следующее правило и оно работает:

... 
[['parent_id'], 'default', 'value' => 0], 
... 

Но что делать, если требуется изменить значение по умолчанию на другое значение?

+0

Вы должны определить '' targetClass' и targetAttribute' для этого правила. '[['parent_id'], 'exist', 'targetClass' => 'app \ models \ Parent', 'targetAttribute' => 'id', 'skipOnEmpty' => true],' – ThanhPV

+0

У меня есть 'targetAttribute', По умолчанию «targetClass» является той же моделью. – Marsick

+0

Могу ли я спросить, почему у вас есть как «NULL», так и «0» как возможные значения для этого столбца? Разве они не имеют в виду одно и то же? – Clyff

ответ

3

изменить порядок правил:

[['parent_id'], 'integer'], 
[['parent_id'], 'exist', 'targetAttribute' => 'id', 'skipOnEmpty' => true], 
[['parent_id'], 'default', 'value' => 0], 
+0

Большое спасибо! Я не думал о порядке правил. – Marsick

Смежные вопросы