fix
This commit is contained in:
@@ -3,11 +3,14 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
use App\Models\MusicPlaylist;
|
use App\Models\MusicPlaylist;
|
||||||
use App\Models\MusicCategory;
|
use App\Models\MusicCategory;
|
||||||
|
use App\Traits\HandlesImageUpload;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class MusicCategoryController extends Controller
|
class MusicCategoryController extends Controller
|
||||||
{
|
{
|
||||||
|
use HandlesImageUpload;
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$categories = MusicCategory::with(['image', 'playlists' => function($q) {
|
$categories = MusicCategory::with(['image', 'playlists' => function($q) {
|
||||||
@@ -24,10 +27,14 @@ public function store(Request $request)
|
|||||||
'name' => 'required|string|max:255',
|
'name' => 'required|string|max:255',
|
||||||
'description' => 'nullable|string',
|
'description' => 'nullable|string',
|
||||||
'image_id' => 'nullable|exists:images,id',
|
'image_id' => 'nullable|exists:images,id',
|
||||||
|
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
|
||||||
'order' => 'nullable|integer',
|
'order' => 'nullable|integer',
|
||||||
'is_active' => 'nullable|boolean',
|
'is_active' => 'nullable|boolean',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// An uploaded image file takes precedence over a provided image_id.
|
||||||
|
$data['image_id'] = $this->uploadedImageId($request) ?? ($data['image_id'] ?? null);
|
||||||
|
|
||||||
// Check for duplicate name
|
// Check for duplicate name
|
||||||
$slug = Str::slug($data['name']);
|
$slug = Str::slug($data['name']);
|
||||||
$existingCategory = MusicCategory::where('slug', $slug)->first();
|
$existingCategory = MusicCategory::where('slug', $slug)->first();
|
||||||
@@ -132,6 +139,7 @@ public function update(Request $request, $id)
|
|||||||
'name' => 'sometimes|string|max:255',
|
'name' => 'sometimes|string|max:255',
|
||||||
'description' => 'nullable|string',
|
'description' => 'nullable|string',
|
||||||
'image_id' => 'nullable|exists:images,id',
|
'image_id' => 'nullable|exists:images,id',
|
||||||
|
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
|
||||||
'order' => 'nullable|integer',
|
'order' => 'nullable|integer',
|
||||||
'is_active' => 'nullable|boolean',
|
'is_active' => 'nullable|boolean',
|
||||||
]);
|
]);
|
||||||
@@ -140,6 +148,11 @@ public function update(Request $request, $id)
|
|||||||
$data['slug'] = Str::slug($data['name']);
|
$data['slug'] = Str::slug($data['name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// An uploaded image file takes precedence over a provided image_id.
|
||||||
|
if (($uploadedImageId = $this->uploadedImageId($request)) !== null) {
|
||||||
|
$data['image_id'] = $uploadedImageId;
|
||||||
|
}
|
||||||
|
|
||||||
$category->update($data);
|
$category->update($data);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
|||||||
@@ -258,6 +258,8 @@
|
|||||||
// Music Categories
|
// Music Categories
|
||||||
// Category with its sub-categories, each carrying its playlists.
|
// Category with its sub-categories, each carrying its playlists.
|
||||||
Route::get('music-categories/{id}/grouped', [MusicCategoryController::class, 'grouped']);
|
Route::get('music-categories/{id}/grouped', [MusicCategoryController::class, 'grouped']);
|
||||||
|
// Explicit POST update so an image can be uploaded (multipart can't ride a PUT).
|
||||||
|
Route::post('music-categories/{id}', [MusicCategoryController::class, 'update']);
|
||||||
Route::apiResource('music-categories', MusicCategoryController::class);
|
Route::apiResource('music-categories', MusicCategoryController::class);
|
||||||
Route::get('public/music-categories', [MusicCategoryController::class, 'index']);
|
Route::get('public/music-categories', [MusicCategoryController::class, 'index']);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user