Skip to content

Commit 04ed220

Browse files
authored
Merge pull request #3564 from paulbalandan/model-setallowedfields
Add setAllowedFields method to Model
2 parents 2583f57 + 340b345 commit 04ed220

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

system/Model.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1579,6 +1579,20 @@ public function errors(bool $forceDB = false)
15791579
return $error['message'] ?? null;
15801580
}
15811581

1582+
//--------------------------------------------------------------------
1583+
1584+
/**
1585+
* It could be used when you have to change default or override current allowed fields.
1586+
*
1587+
* @param array $allowedFields
1588+
*
1589+
* @return void
1590+
*/
1591+
public function setAllowedFields(array $allowedFields)
1592+
{
1593+
$this->allowedFields = $allowedFields;
1594+
}
1595+
15821596
//--------------------------------------------------------------------
15831597
//--------------------------------------------------------------------
15841598
// Validation

tests/system/Database/Live/ModelTest.php

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
<?php namespace CodeIgniter\Database\Live;
1+
<?php
2+
3+
namespace CodeIgniter\Database\Live;
24

35
use BadMethodCallException;
46
use CodeIgniter\Config\Config;
@@ -2579,4 +2581,27 @@ public function testcountAllResultsFalseWithDeletedFalseUseSoftDeletesFalse()
25792581
$this->assertFalse($this->getPrivateProperty($model, 'tempUseSoftDeletes'));
25802582
}
25812583

2584+
public function testSetAllowedFields()
2585+
{
2586+
$allowed1 = [
2587+
'id',
2588+
'created_at',
2589+
];
2590+
$allowed2 = [
2591+
'id',
2592+
'updated_at',
2593+
];
2594+
2595+
$model = new class extends Model {
2596+
protected $allowedFields = [
2597+
'id',
2598+
'created_at',
2599+
];
2600+
};
2601+
2602+
$this->assertSame($allowed1, $this->getPrivateProperty($model, 'allowedFields'));
2603+
2604+
$model->setAllowedFields($allowed2);
2605+
$this->assertSame($allowed2, $this->getPrivateProperty($model, 'allowedFields'));
2606+
}
25822607
}

0 commit comments

Comments
 (0)