0.1: replace Request with FormRequest in all controllers
This commit is contained in:
parent
ffafcf447b
commit
f3568ab277
@ -3,11 +3,12 @@
|
||||
namespace App\Http\Controllers\Blog;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Blog\StoreCategoryRequest;
|
||||
use App\Http\Requests\Blog\UpdateCategoryRequest;
|
||||
use App\Http\Resources\CategoryResource;
|
||||
use App\Http\Resources\PostResource;
|
||||
use App\Models\Blog\Category;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class CategoryController extends Controller
|
||||
{
|
||||
@ -114,43 +115,18 @@ public function getCategoryWithPosts(Request $request, $slug)
|
||||
|
||||
|
||||
// ذخیره یک دستهبندی جدید
|
||||
public function store(Request $request)
|
||||
public function store(StoreCategoryRequest $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|string|max:255|unique:categories,name',
|
||||
'slug' => 'required|string|unique:categories,slug',
|
||||
'description' => 'required|string',
|
||||
'short_description' => 'nullable|string|max:500',
|
||||
'image' => 'nullable|url',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$category = Category::create($validator->validated());
|
||||
$category = Category::create($request->validated());
|
||||
|
||||
return new CategoryResource($category);
|
||||
}
|
||||
|
||||
// بهروزرسانی یک دستهبندی خاص
|
||||
public function update(Request $request, $id)
|
||||
public function update(UpdateCategoryRequest $request, $id)
|
||||
{
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'sometimes|required|string|max:255|unique:categories,name,' . $category->id,
|
||||
'slug' => 'sometimes|required|string|unique:categories,slug,' . $category->id,
|
||||
'description' => 'sometimes|required|string',
|
||||
'short_description' => 'nullable|string|max:500',
|
||||
'image' => 'nullable|url',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$category->update($validator->validated());
|
||||
$category->update($request->validated());
|
||||
|
||||
return new CategoryResource($category);
|
||||
}
|
||||
|
||||
@ -3,10 +3,11 @@
|
||||
namespace App\Http\Controllers\Blog;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Blog\StorePostRequest;
|
||||
use App\Http\Requests\Blog\UpdatePostRequest;
|
||||
use App\Http\Resources\PostResource;
|
||||
use App\Models\Blog\Post;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class PostController extends Controller
|
||||
{
|
||||
@ -51,28 +52,9 @@ public function show($slug)
|
||||
}
|
||||
|
||||
// ذخیره یک پست جدید
|
||||
public function store(Request $request)
|
||||
public function store(StorePostRequest $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'title' => 'required|string|max:255',
|
||||
'body' => 'required|string',
|
||||
'excerpt' => 'nullable|string|max:500',
|
||||
'slug' => 'required|string|unique:posts,slug',
|
||||
'author_id' => 'required|exists:users,id',
|
||||
'category_id' => 'required|exists:categories,id',
|
||||
'featured_image' => 'nullable|url',
|
||||
'views' => 'nullable|integer',
|
||||
'likes' => 'nullable|integer',
|
||||
'published_at' => 'nullable|date',
|
||||
'tags' => 'nullable|array',
|
||||
'tags.*' => 'exists:tags,id',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$post = Post::create($validator->validated());
|
||||
$post = Post::create($request->validated());
|
||||
|
||||
if ($request->has('tags')) {
|
||||
$post->tags()->attach($request->tags);
|
||||
@ -82,30 +64,10 @@ public function store(Request $request)
|
||||
}
|
||||
|
||||
// بهروزرسانی یک پست خاص
|
||||
public function update(Request $request, $id)
|
||||
public function update(UpdatePostRequest $request, $id)
|
||||
{
|
||||
$post = Post::findOrFail($id);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'title' => 'sometimes|required|string|max:255',
|
||||
'body' => 'sometimes|required|string',
|
||||
'excerpt' => 'nullable|string|max:500',
|
||||
'slug' => 'sometimes|required|string|unique:posts,slug,' . $post->id,
|
||||
'author_id' => 'sometimes|required|exists:users,id',
|
||||
'category_id' => 'sometimes|required|exists:categories,id',
|
||||
'featured_image' => 'nullable|url',
|
||||
'views' => 'nullable|integer',
|
||||
'likes' => 'nullable|integer',
|
||||
'published_at' => 'nullable|date',
|
||||
'tags' => 'nullable|array',
|
||||
'tags.*' => 'exists:tags,id',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$post->update($validator->validated());
|
||||
$post->update($request->validated());
|
||||
|
||||
if ($request->has('tags')) {
|
||||
$post->tags()->sync($request->tags);
|
||||
|
||||
@ -3,10 +3,11 @@
|
||||
namespace App\Http\Controllers\Blog;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Blog\StoreTagRequest;
|
||||
use App\Http\Requests\Blog\UpdateTagRequest;
|
||||
use App\Http\Resources\TagResource;
|
||||
use App\Models\Blog\Tag;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class TagController extends Controller
|
||||
{
|
||||
@ -25,37 +26,18 @@ public function show($id)
|
||||
}
|
||||
|
||||
// ذخیره یک تگ جدید
|
||||
public function store(Request $request)
|
||||
public function store(StoreTagRequest $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|string|max:255|unique:tags,name',
|
||||
'slug' => 'required|string|unique:tags,slug',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$tag = Tag::create($validator->validated());
|
||||
$tag = Tag::create($request->validated());
|
||||
|
||||
return new TagResource($tag);
|
||||
}
|
||||
|
||||
// بهروزرسانی یک تگ خاص
|
||||
public function update(Request $request, $id)
|
||||
public function update(UpdateTagRequest $request, $id)
|
||||
{
|
||||
$tag = Tag::findOrFail($id);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'sometimes|required|string|max:255|unique:tags,name,' . $tag->id,
|
||||
'slug' => 'sometimes|required|string|unique:tags,slug,' . $tag->id,
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->errors(), 422);
|
||||
}
|
||||
|
||||
$tag->update($validator->validated());
|
||||
$tag->update($request->validated());
|
||||
|
||||
return new TagResource($tag);
|
||||
}
|
||||
|
||||
@ -2,9 +2,10 @@
|
||||
|
||||
namespace App\Http\Controllers\Website;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Website\AboutMe;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Website\StoreAboutMeRequest;
|
||||
use App\Http\Requests\Website\UpdateAboutMeRequest;
|
||||
use App\Models\Website\AboutMe;
|
||||
|
||||
class AboutMeController extends Controller
|
||||
{
|
||||
@ -20,16 +21,16 @@ public function show($id)
|
||||
return response()->json($aboutMe);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
public function store(StoreAboutMeRequest $request)
|
||||
{
|
||||
$aboutMe = AboutMe::create($request->all());
|
||||
$aboutMe = AboutMe::create($request->validated());
|
||||
return response()->json($aboutMe, 201);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
public function update(UpdateAboutMeRequest $request, $id)
|
||||
{
|
||||
$aboutMe = AboutMe::findOrFail($id);
|
||||
$aboutMe->update($request->all());
|
||||
$aboutMe->update($request->validated());
|
||||
return response()->json($aboutMe);
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,8 @@
|
||||
namespace App\Http\Controllers\website;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\Website\StoreProjectRequest;
|
||||
use App\Http\Requests\Website\UpdateProjectRequest;
|
||||
use App\Models\Website\Project;
|
||||
use App\Models\Website\ProjectCategory;
|
||||
|
||||
@ -53,7 +54,7 @@ public function index($locale): \Illuminate\Http\JsonResponse
|
||||
}
|
||||
|
||||
|
||||
public function store(Request $request)
|
||||
public function store(StoreProjectRequest $request)
|
||||
{
|
||||
$project = Project::create($request->only(['category_id', 'image1', 'image2']));
|
||||
|
||||
@ -92,7 +93,7 @@ public function show($id)
|
||||
}
|
||||
|
||||
|
||||
public function update(Request $request, $id)
|
||||
public function update(UpdateProjectRequest $request, $id)
|
||||
{
|
||||
$project = Project::findOrFail($id);
|
||||
$project->update($request->only(['category_id', 'image1', 'image2']));
|
||||
|
||||
24
app/Http/Requests/Blog/StoreCategoryRequest.php
Normal file
24
app/Http/Requests/Blog/StoreCategoryRequest.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreCategoryRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string|max:255|unique:categories,name',
|
||||
'slug' => 'required|string|unique:categories,slug',
|
||||
'description' => 'required|string',
|
||||
'short_description' => 'nullable|string|max:500',
|
||||
'image' => 'nullable|url',
|
||||
];
|
||||
}
|
||||
}
|
||||
31
app/Http/Requests/Blog/StorePostRequest.php
Normal file
31
app/Http/Requests/Blog/StorePostRequest.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StorePostRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'required|string|max:255',
|
||||
'body' => 'required|string',
|
||||
'excerpt' => 'nullable|string|max:500',
|
||||
'slug' => 'required|string|unique:posts,slug',
|
||||
'author_id' => 'required|exists:users,id',
|
||||
'category_id' => 'required|exists:categories,id',
|
||||
'featured_image' => 'nullable|url',
|
||||
'views' => 'nullable|integer',
|
||||
'likes' => 'nullable|integer',
|
||||
'published_at' => 'nullable|date',
|
||||
'tags' => 'nullable|array',
|
||||
'tags.*' => 'exists:tags,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
21
app/Http/Requests/Blog/StoreTagRequest.php
Normal file
21
app/Http/Requests/Blog/StoreTagRequest.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreTagRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string|max:255|unique:tags,name',
|
||||
'slug' => 'required|string|unique:tags,slug',
|
||||
];
|
||||
}
|
||||
}
|
||||
26
app/Http/Requests/Blog/UpdateCategoryRequest.php
Normal file
26
app/Http/Requests/Blog/UpdateCategoryRequest.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateCategoryRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$categoryId = $this->route('category');
|
||||
|
||||
return [
|
||||
'name' => 'sometimes|required|string|max:255|unique:categories,name,' . $categoryId,
|
||||
'slug' => 'sometimes|required|string|unique:categories,slug,' . $categoryId,
|
||||
'description' => 'sometimes|required|string',
|
||||
'short_description' => 'nullable|string|max:500',
|
||||
'image' => 'nullable|url',
|
||||
];
|
||||
}
|
||||
}
|
||||
31
app/Http/Requests/Blog/UpdatePostRequest.php
Normal file
31
app/Http/Requests/Blog/UpdatePostRequest.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdatePostRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'sometimes|required|string|max:255',
|
||||
'body' => 'sometimes|required|string',
|
||||
'excerpt' => 'nullable|string|max:500',
|
||||
'slug' => 'sometimes|required|string|unique:posts,slug,' . $this->route('post'),
|
||||
'author_id' => 'sometimes|required|exists:users,id',
|
||||
'category_id' => 'sometimes|required|exists:categories,id',
|
||||
'featured_image' => 'nullable|url',
|
||||
'views' => 'nullable|integer',
|
||||
'likes' => 'nullable|integer',
|
||||
'published_at' => 'nullable|date',
|
||||
'tags' => 'nullable|array',
|
||||
'tags.*' => 'exists:tags,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
23
app/Http/Requests/Blog/UpdateTagRequest.php
Normal file
23
app/Http/Requests/Blog/UpdateTagRequest.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Blog;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateTagRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$tagId = $this->route('tag');
|
||||
|
||||
return [
|
||||
'name' => 'sometimes|required|string|max:255|unique:tags,name,' . $tagId,
|
||||
'slug' => 'sometimes|required|string|unique:tags,slug,' . $tagId,
|
||||
];
|
||||
}
|
||||
}
|
||||
20
app/Http/Requests/Website/StoreAboutMeRequest.php
Normal file
20
app/Http/Requests/Website/StoreAboutMeRequest.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Website;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreAboutMeRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'image' => 'required|string|max:255',
|
||||
];
|
||||
}
|
||||
}
|
||||
26
app/Http/Requests/Website/StoreProjectRequest.php
Normal file
26
app/Http/Requests/Website/StoreProjectRequest.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Website;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreProjectRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'category_id' => 'required|exists:website_project_categories,id',
|
||||
'image1' => 'required|string|max:255',
|
||||
'image2' => 'required|string|max:255',
|
||||
'title_fa' => 'required|string|max:255',
|
||||
'title_en' => 'required|string|max:255',
|
||||
'description_fa' => 'required|string',
|
||||
'description_en' => 'required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
20
app/Http/Requests/Website/UpdateAboutMeRequest.php
Normal file
20
app/Http/Requests/Website/UpdateAboutMeRequest.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Website;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateAboutMeRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'image' => 'sometimes|required|string|max:255',
|
||||
];
|
||||
}
|
||||
}
|
||||
26
app/Http/Requests/Website/UpdateProjectRequest.php
Normal file
26
app/Http/Requests/Website/UpdateProjectRequest.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Website;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateProjectRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'category_id' => 'sometimes|required|exists:website_project_categories,id',
|
||||
'image1' => 'sometimes|required|string|max:255',
|
||||
'image2' => 'sometimes|required|string|max:255',
|
||||
'title_fa' => 'sometimes|required|string|max:255',
|
||||
'title_en' => 'sometimes|required|string|max:255',
|
||||
'description_fa' => 'sometimes|required|string',
|
||||
'description_en' => 'sometimes|required|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user