Ad

How To Define A User (author) - OctoberCMS

- 1 answer

I need help. I only need to be able to view one user for a post in OctoberCMS.

But all users will always show up to me.

Here's the code that works, but I don't know how to define it to work the way I need it.

idea: https://ibb.co/VM2Rrr3

public function getUserOptions()
{
    $result = [0 => 'indikator.news::lang.form.select_user'];
    $users = Db::table('backend_users')->orderBy('login', 'asc')->get()->all();

    foreach ($users as $user) {
        $name = trim($user->first_name.' '.$user->last_name);
        $name = ($name != '') ? ' ('.$name.')' : '';
        $result[$user->id] = $user->login.$name;
    }

    return $result;
}
Ad

Answer

Use this as user who is creating project is user who is currently logged in so we can use current logged-in user that.

use BackendAuth;

public function getUser/code> that.

use BackendAuth;

public function getUserOptions()
{
    // placeholder
    $result = [0 => 'indikator.news::lang.form.select_user'];

    // only back-end user which is currently logged in
    // it will be available always as we are in back-end :)
    $user = BackendAuth::getUser();
    $result[$user->id] = $user->login; // or $user->email;    

    return $result;
}

It will get logged in user and show in drop-down for selection [ or even you skip place-holder to have only 1 selected option]

if any doubts please comment.

Ad
source: stackoverflow.com
Ad