This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.

matto
matto

Inside my plugin I am trying to add a custom attribute but I got stucked with a basic example I copied from the documentation (https://octobercms.com/docs/plugin/extending#extending-user-model):

PostModel::extend(function($model) {
    $model->bindEvent('model.getAttribute', function($attribute, $value) {
        if ($attribute === 'foo') {
            return 'bar';
        }
    });
});

However caling a $post->foo (or rather post.foo) inside my twig template returns NULL.

What am I missing?

mjauvin
mjauvin

You need to properly reference the model you want to extend...

use Rainlab\Blog\Models\Post;

class Plugin extends PluginBase
{
    public function boot()
    {
        Post::extend(function($model) {
            $model->bindEvent('model.getAttribute', function($attribute, $value) {
                if ($attribute === 'foo') {
                    return 'bar';
                }
            });
        });
    }
}
matto
matto

Thank you for your reply.

I do have it correctly referenced, like that:

use RainLab\Blog\Models\Post as PostModel;

mjauvin
mjauvin

I just realized, you also need to add that field to your model:

Post::extend(function($model) {
    $model->addDynamicProperty('foo', 'initial value');
}

1-4 of 4

You cannot edit posts or make replies: the forum has moved to talk.octobercms.com.