Для моего программного обеспечения я должен запретить пользователю продавать больше акций, чем они находят в базе данных, поэтому для начала мне нужно задать поле акций в виде целого числа без знака.
Проблема в том, что хотяэти единицы не могут быть проданы и вычтены, продажа создается без запаса, потому что она не проверена.
Для осуществления продажи у меня есть три модели, соответствующие трем таблицам в базе данных: запас, детали продажи ипродажа.
Для проверки создайте несколько функций, чтобы зарегистрированные данные таблиц находились в базе данных следующим образом:
public function getDetails()
{
return $this->hasOne(Articledetail::className(), ['ID_ARTICLE_DETAIL' => 'ID_ARTICLE_DETAIL']);
}
public function getExistences()
{
if ($mother = Articledetail::findOne($this->mother))
{
return $mother->details->ARTICLE_STOCK;
}
}
Затем должна быть возможность проверки модели с помощьюследующее правило:
public function rules()
{
return [
['STOCK', 'compare', 'compareAttribute' => 'existences', 'operator' => '<='],
];
}
Проблема в том, что я думаю, что вы не получаете целочисленное значение таблицы в базе данных, потому что в форме не имеет значения, какое значение вы вводите, оновсегда говорит, что она должна быть меньше или равна функции существования.