I have a form and am trhing to save a select box that is popluated by a database table.

First the model i have: This is belonging to a user:

    public function initialize(){
        $this->belongsTo('roleId', 'Nova\Models\Roles', 'id', array(
            'alias' => 'role',
            'reusable' => true
        ));
    }

This is the code that seems to be breaking the ability to save the roldId column for some reason. This afterfetch is not even used on teh form in question, but it is this that is breaking the save.

public function afterFetch(){
    $this->nameRole = $this->name." - ".$this->role->name;
}  

Here is the controller. The value seems to be getting set correctly in teh $user->assign but once I save the value reverts back to the original.

    public function editAction($id)
    {
        $user = Users::findFirstById($id);
        if (!$user) {
            $this->flash->error("User was not found");
            return $this->dispatcher->forward(array(
                'action' => 'index'
            ));
        }
        if ($this->request->isPost()) {
            $user->assign(array(
                'name'      => $this->request->getPost('name', 'striptags'),
                'roleId'=> $this->request->getPost('roleId','int'),
                'email'     => $this->request->getPost('email', 'email'),
                'active'    => $this->request->getPost('active')
            ));

            print_r($user->roleId);
            // this print returns the proper NEW value
            if (!$user->save()) {
                $this->flash->error($user->getMessages());
            } else {
                print_r($user->roleId);
                // the result of this print is the original value
                $this->flash->success("User was updated successfully");
                Tag::resetInput();
            }
        }
        $this->view->user = $user;
        $this->view->form = new UsersForm($user, array(
            'edit' => true
        ));
    }

The Form In case you were wondering:

        $this->add(new Select('roleId', Roles::find('active = "1"'), array(
            'using' => array(
                'id',
                'name'
            ),
            'useEmpty' => true,
            'emptyText' => '...',
            'emptyValue' => ''
        )));

Any insight would be really appreciated.