hujiao-gui/app/Models/User.php

63 lines
2.0 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use Notifiable,HasRoles;
protected $table = 'user';
protected $guarded = ['id'];
public function menus()
{
$menus = [];
$data = Menu::with('childs')->where('parent_id', 0)->orderBy('sort','asc')->get();
foreach ($data as $k1 => $v1){
if ($v1->permission_id==null || ($v1->permission_id!=null&&$this->hasPermissionTo($v1->permission_id))){
$menus[$k1] = [
'name' => $v1->name,
'route' => $v1->route,
'url' => $v1->url,
'icon' => $v1->icon,
'type' => $v1->type,
'childs' => [],
];
if ($v1->childs->isNotEmpty()){
foreach ($v1->childs as $k2 => $v2){
if ($v2->permission_id==null || ($v2->permission_id!=null&&$this->hasPermissionTo($v2->permission_id))){
$menus[$k1]['childs'][$k2] = [
'name' => $v2->name,
'route' => $v2->route,
'url' => $v2->url,
'icon' => $v2->icon,
'type' => $v2->type,
];
}
}
}
}
}
return $menus;
}
/**
* 分机
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function sip()
{
return $this->hasOne('App\Models\Sip','id','sip_id')->withDefault(['username'=>'-']);
}
public function department()
{
return $this->hasOne('App\Models\Department','id','department_id')->withDefault(['name'=>'-']);
}
}