'boolean', ]; /** * Sortable columns. * * @var array */ public $sortable = ['name', 'enabled']; public function users() { return $this->morphedByMany('App\Models\Auth\User', 'user', 'user_dashboards', 'dashboard_id', 'user_id'); } public function widgets() { return $this->hasMany('App\Models\Common\Widget')->orderBy('sort', 'asc'); } /** * Scope to only include dashboards of a given user id. * * @param \Illuminate\Database\Eloquent\Builder $query * @param int $user_id * @return \Illuminate\Database\Eloquent\Builder */ public function scopeUserId($query, $user_id) { return $query->whereHas('users', function ($query) use ($user_id) { $query->where('user_id', $user_id); }); } /** * Create a new factory instance for the model. * * @return \Illuminate\Database\Eloquent\Factories\Factory */ protected static function newFactory() { return \Database\Factories\Dashboard::new(); } }