selectRaw 换成 leftJoin

START
鹿和sa0ChunLuyu 2 years ago
parent 6ca2ceb64e
commit 2898c3395f

@ -8,7 +8,9 @@ use App\Models\Admin;
use App\Models\AdminAccount;
use App\Models\AdminToken;
use App\Models\Config;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yo;
use Login;
use Illuminate\Support\Str;
@ -52,9 +54,21 @@ class AdminController extends Controller
$admin_account->secret = bcrypt($request->post('password'));
$admin_account->type = 1;
$admin_account->save();
$admin_info = Admin::select(['id', 'nickname', 'avatar', 'status', 'admin_auth_group', 'initial_password'])
->selectRaw("IFNULL((select account from admin_accounts where admin_accounts.admin = admins.id and type = 1),'') as account")
->selectRaw("IFNULL((select name from admin_auth_groups where admin_auth_groups.id = admins.admin_auth_group),'') as admin_auth_group_name")
$admin_info = Admin::select([
DB::raw('admins.id as id'),
DB::raw('admins.nickname as nickname'),
DB::raw('admins.avatar as avatar'),
DB::raw('admins.status as status'),
DB::raw('admins.admin_auth_group as admin_auth_group'),
DB::raw('admins.initial_password as initial_password'),
DB::raw('admin_accounts.account as account'),
DB::raw('admin_auth_groups.name as admin_auth_group_name')
])
->leftJoin('admin_accounts', function (JoinClause $join) {
$join->on('admin_accounts.admin', '=', 'admins.id')
->where('admin_accounts.type', '=', 1);
})
->leftJoin('admin_auth_groups', 'admin_auth_groups.id', '=', 'admins.admin_auth_group')
->where('id', $admin->id)->first();
return Yo::echo([
'info' => $admin_info
@ -82,10 +96,22 @@ class AdminController extends Controller
$admin_account->account = $request->post('account');
$admin_account->save();
}
$admin_info = Admin::select(['id', 'nickname', 'avatar', 'status', 'admin_auth_group', 'initial_password'])
->selectRaw("IFNULL((select account from admin_accounts where admin_accounts.admin = admins.id and type = 1),'') as account")
->selectRaw("IFNULL((select name from admin_auth_groups where admin_auth_groups.id = admins.admin_auth_group),'') as admin_auth_group_name")
->where('id', $admin->id)->first();
$admin_info = Admin::select([
DB::raw('admins.id as id'),
DB::raw('admins.nickname as nickname'),
DB::raw('admins.avatar as avatar'),
DB::raw('admins.status as status'),
DB::raw('admins.admin_auth_group as admin_auth_group'),
DB::raw('admins.initial_password as initial_password'),
DB::raw('admin_accounts.account as account'),
DB::raw('admin_auth_groups.name as admin_auth_group_name')
])
->leftJoin('admin_accounts', function (JoinClause $join) {
$join->on('admin_accounts.admin', '=', 'admins.id')
->where('admin_accounts.type', '=', 1);
})
->leftJoin('admin_auth_groups', 'admin_auth_groups.id', '=', 'admins.admin_auth_group')
->where('admins.id', $admin->id)->first();
return Yo::echo([
'info' => $admin_info
]);
@ -113,22 +139,34 @@ class AdminController extends Controller
$search = $request->post('search');
$admin_auth_group = $request->post('admin_auth_group');
$initial_password = $request->post('initial_password');
$admin_list = Admin::select(['id', 'nickname', 'avatar', 'status', 'admin_auth_group', 'initial_password'])
->selectRaw("IFNULL((select account from admin_accounts where admin_accounts.admin = admins.id and type = 1),'') as account")
->selectRaw("IFNULL((select name from admin_auth_groups where admin_auth_groups.id = admins.admin_auth_group),'') as admin_auth_group_name")
$admin_list = Admin::select([
DB::raw('admins.id as id'),
DB::raw('admins.nickname as nickname'),
DB::raw('admins.avatar as avatar'),
DB::raw('admins.status as status'),
DB::raw('admins.admin_auth_group as admin_auth_group'),
DB::raw('admins.initial_password as initial_password'),
DB::raw('admin_accounts.account as account'),
DB::raw('admin_auth_groups.name as admin_auth_group_name')
])
->leftJoin('admin_accounts', function (JoinClause $join) {
$join->on('admin_accounts.admin', '=', 'admins.id')
->where('admin_accounts.type', '=', 1);
})
->leftJoin('admin_auth_groups', 'admin_auth_groups.id', '=', 'admins.admin_auth_group')
->where(function ($query) use ($status) {
if ($status != 0) $query->where('status', $status);
if ($status != 0) $query->where('admins.status', $status);
})
->where(function ($query) use ($admin_auth_group) {
if ($admin_auth_group != 0) $query->where('admin_auth_group', $admin_auth_group);
if ($admin_auth_group != 0) $query->where('admins.admin_auth_group', $admin_auth_group);
})
->where(function ($query) use ($initial_password) {
if ($initial_password != 0) $query->where('initial_password', $initial_password);
if ($initial_password != 0) $query->where('admins.initial_password', $initial_password);
})
->where(function ($query) use ($search) {
if ($search != '') $query->where('nickname', 'like', "%$search%");
if ($search != '') $query->where('admins.nickname', 'like', "%$search%");
})
->where('del', 2)
->where('admins.del', 2)
->paginate(20);
return Yo::echo([
'list' => $admin_list

Loading…
Cancel
Save