I have a Laravel Eloquent model User, which has a table with username and email columns. I need to add a property for the model on runtime, something like $user->secure. This pr
For those who still find this post (like I did), you may need to explicitly declare the property as null
to prevent it from being automatically added to the attributes
array, and thus being added to INSERT/UPDATE queries:
class User extends Eloquent {
public $secure = null;
// ...
}
Source: http://laravel.io/forum/02-10-2014-setting-transient-properties-on-eloquent-models-without-saving-to-database
If you intend to make use of that add-on property, then $append
will blow your mind.
http://laraveldaily.com/why-use-appends-with-accessors-in-eloquent/
Just add an attribute to your class.
class User extends Eloquent {
public $secure;
// ...
}
Note that it is better to declare it protected and add corresponding accessors and mutators (getSecure
and setSecure
methods) to your model.