laravel-nova-ban icon indicating copy to clipboard operation
laravel-nova-ban copied to clipboard

How to display "comment" on the resource page

Open saleh-old opened this issue 4 years ago • 2 comments

How can I display the "comment" (reason user was banned) in the User resource detail page?

Thank you

saleh-old avatar Mar 29 '20 13:03 saleh-old

Sorry, I don't know, I haven't started to use Nova in any of my projects. Maybe somebody else know how to do it.

antonkomarev avatar Mar 29 '20 16:03 antonkomarev

I just defined the reason (along with other ban fields) as accessors:

public function getBannedAttribute()
{
        return $this->isBanned();
}

public function getBannedUntilAttribute()
{
        $ban = $this->bans()->first();
        if($ban){
            return $ban->expired_at;
        }
        return null;
}

public function getBannedReasonAttribute()
{
        $ban = $this->bans()->first();
        if($ban){
            return $ban->comment;
        }
        return null;
}

So then you can just drop them into your Nova field like:

Boolean::make('Banned')
        ->sortable()
         ->hideWhenCreating()
        ->hideWhenUpdating(),

Date::make('Banned Until')
        ->onlyOnDetail(),

Text::make('Banned Reason')
        ->onlyOnDetail(),

kilrizzy avatar Jan 20 '21 00:01 kilrizzy