Current File : /home/itiffy/public_html/vendor/laraveldaily/quickadmin/src/Models/Menu.php
<?php

namespace Laraveldaily\Quickadmin\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class Menu extends Model
{
    protected $fillable = [
        'position',
        'menu_type',
        'icon',
        'name',
        'title',
        'parent_id',
    ];

    public $relation_ids = [];

    /**
     * Convert name to ucfirst() and camelCase
     *
     * @param $input
     */
    public function setNameAttribute($input)
    {
        $this->attributes['name'] = ucfirst(Str::camel($input));
    }

    /**
     * Get children links
     * @return mixed
     */
    public function children()
    {
        return $this->hasMany('Laraveldaily\Quickadmin\Models\Menu', 'parent_id', 'id')->orderBy('position');
    }

    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

    public function availableForRole($role)
    {
        if ($role instanceof Role) {
            $role = $role->id;
        }

        if (! isset($this->relation_ids['roles'])) {
            $this->relation_ids['roles'] = $this->roles()->pluck('id')->flip()->all();
        }

        return isset($this->relation_ids['roles'][$role]);
    }
}