langsung saja kasusnya:
misal saya akan membatasi nilai maksimal yang diperbolehkan untuk di insert, tetapi nilai akan berubah secara dinamis sesuai dengan persediaan yang masih ada. pertama saya deklarasikan variable di dalam class model
private $maxOut = 0;
lalu di rules() diatur
array('jumlah', 'numerical', 'integerOnly'=>true, 'max'=>$this->maxOut, 'tooBig'=>'Pengeluaran melebihi persediaan.'),
saya pikir sebelum rules() di eksekusi tentu sudah harus merubah nilai $this->maxOut dengan jumlah persediaan yang masih tersisa. untuk itu sekarang saya gunakan beforeValidate()
protected function beforeValidate()
{
if( !empty($_POST['namaModel']['namafield'] ) )
{
// !empty digunakan u/ mengecek karena rules() belum dieksekusi
// $_POST['namaModel']['namafield'] saya gunakan sbg parameter query
//code untuk mengambil nilai dari tabel.
$this->maxOut = $persediaan - $pengeluaran;
}
return true;
}
kok $this->maxOut nya belum berubah ya gan?
masih terisi nilai 0.

Help















