From 07c4a45d3908a1de3f8ba46d3dc709f442f738fc Mon Sep 17 00:00:00 2001 From: janhartigan Date: Wed, 17 Dec 2014 19:25:06 -0800 Subject: [PATCH] allowing for camel and studly-cased mutator attributes --- src/Illuminate/Database/Eloquent/Model.php | 3 ++- tests/Database/DatabaseEloquentModelTest.php | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Database/Eloquent/Model.php b/src/Illuminate/Database/Eloquent/Model.php index 88b32c86eaaa..cafcdd3de5bd 100755 --- a/src/Illuminate/Database/Eloquent/Model.php +++ b/src/Illuminate/Database/Eloquent/Model.php @@ -2537,6 +2537,7 @@ public function hasGetMutator($key) public function getMutatorMethod($key) { $mutators = static::$mutatorCache[$this->klass]; + $key = snake_case($key); return isset($mutators[$key]) ? $mutators[$key] : null; } @@ -3171,4 +3172,4 @@ public function __wakeup() $this->bootIfNotBooted(); } -} +} \ No newline at end of file diff --git a/tests/Database/DatabaseEloquentModelTest.php b/tests/Database/DatabaseEloquentModelTest.php index 0759ffcf0f41..86436e85741e 100755 --- a/tests/Database/DatabaseEloquentModelTest.php +++ b/tests/Database/DatabaseEloquentModelTest.php @@ -871,8 +871,10 @@ public function testAppendingOfAttributes() { $model = new EloquentModelAppendsStub; $this->assertEquals('admin', $model->is_admin); + $this->assertEquals('camelCased', $model->camelCased); + $this->assertEquals('StudlyCased', $model->StudlyCased); - $model->setHidden(['is_admin']); + $model->setHidden(['is_admin', 'camelCased', 'StudlyCased']); $this->assertEquals([], $model->toArray()); $model->setVisible([]); @@ -1133,9 +1135,17 @@ public static function isBooted() } class EloquentModelAppendsStub extends Illuminate\Database\Eloquent\Model { - protected $appends = array('is_admin'); + protected $appends = array('is_admin', 'camelCased', 'StudlyCased'); public function getIsAdminAttribute() { return 'admin'; } + public function getCamelCasedAttribute() + { + return 'camelCased'; + } + public function getStudlyCasedAttribute() + { + return 'StudlyCased'; + } }