diff --git a/app/Http/Controllers/Admin/ImageController.php b/app/Http/Controllers/Admin/ImageController.php index 3f67a341..b723a28b 100644 --- a/app/Http/Controllers/Admin/ImageController.php +++ b/app/Http/Controllers/Admin/ImageController.php @@ -63,7 +63,7 @@ class ImageController extends Controller }); foreach ($words as $word) { - $builder->whereRaw("concat(origin_name,alias_name) like ?", ["%{$word}%"]); + $builder->where('origin_name', 'like', "%{$word}%")->orWhere('alias_name', 'like', "%{$word}%"); } })->latest()->paginate(40); $images->getCollection()->each(function (Image $image) { diff --git a/app/Http/Controllers/Admin/StrategyController.php b/app/Http/Controllers/Admin/StrategyController.php index 765b3bd0..ef1ad77b 100644 --- a/app/Http/Controllers/Admin/StrategyController.php +++ b/app/Http/Controllers/Admin/StrategyController.php @@ -16,7 +16,7 @@ class StrategyController extends Controller public function index(Request $request): View { $strategies = Strategy::query()->when($request->query('keywords'), function (Builder $builder, $keywords) { - $builder->whereRaw("concat(ifnull(name,''),ifnull(intro,'')) like ?",["%{$keywords}%"]); + $builder->where('name', 'like', "%{$keywords}%")->orWhere('intro', 'like', "%{$keywords}%"); })->withCount('images')->withSum('images', 'size')->latest()->paginate(); return view('admin.strategy.index', compact('strategies')); } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index c07eed7b..ea7c4e8f 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -22,7 +22,7 @@ class UserController extends Controller $users = User::query()->when($status > -1, function (Builder $builder) use ($status) { $builder->where('status', $status); })->when($request->query('keywords'), function (Builder $builder, $keywords) { - $builder->whereRaw("concat(name, email) like ?",["%{$keywords}%"]); + $builder->where('name', 'like', "%{$keywords}%")->orWhere('email', 'like', "%{$keywords}%"); })->with('group')->withSum('images', 'size')->latest()->paginate(); $statuses = [-1 => '全部', 1 => '正常', 0 => '冻结']; return view('admin.user.index', compact('users', 'statuses')); diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index ed979a6e..f96ee7c5 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Enums\ConfigKey; use App\Enums\GroupConfigKey; +use App\Enums\UserStatus; use App\Exceptions\UploadException; use App\Http\Api; use App\Models\Config; @@ -83,6 +84,7 @@ class Controller extends BaseController 'password' => Hash::make($request->input('account.password')), ]); $user->is_adminer = true; + $user->status = UserStatus::Normal; $user->email_verified_at = date('Y-m-d H:i:s'); $user->save(); // 更新站点域名 diff --git a/app/Models/Album.php b/app/Models/Album.php index b31ea896..9549f909 100644 --- a/app/Models/Album.php +++ b/app/Models/Album.php @@ -37,6 +37,12 @@ class Album extends Model 'intro' => '', ]; + protected $casts = [ + 'id' => 'integer', + 'user_id' => 'integer', + 'image_num' => 'integer', + ]; + public function scopeFilter(Builder $builder, Request $request) { return $builder->when($request->query('order') ?: 'newest', function (Builder $builder, $order) { @@ -54,7 +60,7 @@ class Album extends Model $builder->latest(); } })->when($request->query('keyword'), function (Builder $builder, $keyword) { - $builder->whereRaw("concat(name,intro) like ?", ["%{$keyword}%"]); + $builder->where('name', 'like', "%{$keyword}%")->orWhere('intro', 'like', "%{$keyword}%"); }); } diff --git a/app/Models/Group.php b/app/Models/Group.php index 10530f8b..d77b8d60 100644 --- a/app/Models/Group.php +++ b/app/Models/Group.php @@ -34,6 +34,7 @@ class Group extends Model ]; protected $casts = [ + 'id' => 'integer', 'is_default' => 'bool', 'configs' => 'collection' ]; diff --git a/app/Models/Image.php b/app/Models/Image.php index 1160abc2..42239053 100644 --- a/app/Models/Image.php +++ b/app/Models/Image.php @@ -81,10 +81,16 @@ class Image extends Model ]; protected $casts = [ + 'id' => 'integer', + 'user_id' => 'integer', + 'album_id' => 'integer', + 'group_id' => 'integer', + 'strategy_id' => 'integer', 'width' => 'integer', 'height' => 'integer', 'size' => 'float', 'is_unhealthy' => 'bool', + 'permission' => 'integer', ]; protected static function booted() @@ -137,7 +143,7 @@ class Image extends Model break; } })->when($request->query('keyword'), function (Builder $builder, $keyword) { - $builder->whereRaw("concat(origin_name,alias_name) like ?", ["%{$keyword}%"]); + $builder->where('origin_name', 'like', "%{$keyword}%")->orWhere('alias_name', 'like', "%{$keyword}%"); })->when((int) $request->query('album_id'), function (Builder $builder, $albumId) { $builder->where('album_id', $albumId); }, function (Builder $builder) { diff --git a/app/Models/Strategy.php b/app/Models/Strategy.php index adb46e4c..c0b1774a 100644 --- a/app/Models/Strategy.php +++ b/app/Models/Strategy.php @@ -39,6 +39,8 @@ class Strategy extends Model ]; protected $casts = [ + 'id' => 'integer', + 'key' => 'integer', 'configs' => 'collection', ]; diff --git a/app/Models/User.php b/app/Models/User.php index a7b8ff73..85fe75b0 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -77,6 +77,11 @@ class User extends Authenticatable implements MustVerifyEmail * @var array */ protected $casts = [ + 'id' => 'integer', + 'group_id' => 'integer', + 'image_num' => 'integer', + 'album_num' => 'integer', + 'status' => 'integer', 'capacity' => 'float', 'is_adminer' => 'bool', 'configs' => 'collection',