select('contents.*') ->where('contents.status', '<>', self::STATUS_DELETED) ->where('module_handler', $handler) ->orderBy('created_at'); // join user email and user name to results when needed if ($joinAuthor) { $query = $query->join('users', 'users.id', '=', 'contents.user_id') ->select('contents.*', 'users.name AS author_name', 'users.email AS author_email'); } return $query; } /** * Mark relationship with users table * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function author() { return $this->belongsTo('App\Models\User', 'user_id'); } }