public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'slug' => 'max:255|unique:categories',
'image' => 'mimes:jpg,png,jpeg|max:1000',
'parent_category' => 'required|integer',
'meta_title' => 'max:255',
'meta_description' => 'max:255',
'meta_keywords' => 'max:255',
'bottom_showcase' => 'max:4000',
'top_showcase' => 'max:4000',
'desk' => 'min:1|integer',
'status' => [
'required',
'max:1',
Rule::in([0, 1]),
],
],[
'name.required' => 'Kategori adı boş bırakılamaz.',
'name.max' => 'Kategori adı max 255 karakter olabilir.',
'slug.max' => 'Kategori url max 255 karakter olabilir.',
'slug.unique' => 'Bu kategori linki kullanılıyor. Başka url giriniz.',
'parent_category.required' => 'Bağlı olduğu kategori boş geçilemez.',
'parent_category.integer' => 'Bağlı olduğu kategori sadece tam sayı alabilir.',
'image.mimes' => 'Kategori resmine sadece "jpg, png, jpeg" formatları yüklenebilir.',
'image.max' => 'Kategori resmine max 1mb resim yüklenebilir.',
'meta_title.max' => 'Meta title max 255 karakter olabilir.',
'meta_description.max' => 'Meta description max 255 karakter olabilir.',
'meta_keywords.max' => 'Meta keywords max 255 karakter olabilir.',
'bottom_showcase.max' => 'Alt vitrin max 4000 karakter olabilir.',
'top_showcase.max' => 'Üst vitrin max 4000 karakter olabilir.',
'status.required' => 'Durum boş geçilemez.',
'status.max' => 'Durum sadece 1 karakterli olabilir.',
'status.in' => 'Durum sadece 0 veya 1 alabilir.',
'desk.min' => 'Sıra alanı min 1 karakter olmalıdır.',
'desk.integer' => 'Sıra alanı tam sayı olmalıdır.',
]);
if ($validator->fails()) {
$errors = $validator->errors();
$newErrors = implode('<br>', $errors->all());
return response([
'status' => 'info',
'title' => 'Opps!',
'message' => $newErrors,
'orient' => false,
'location' => null
]);
}
$category = new Category;
$category->name = $request->name;
if(empty($request->slug)){
$count = Category::where('slug', 'LIKE', "%".Str::slug($request->name, '-')."%")->count();
if($count!=0){
$category->slug = Str::slug($request->name, '-')."-".($count+1);
}else{
$category->slug = Str::slug($request->name, '-');
}
}else{
$category->slug = $request->slug;
}
if ($request->has('image')) {
$file = $request->file('image');
$extension = $file->extension();
//$fileName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
if (Storage::disk('public')->exists('categories/'.$category->slug.".".$extension)) {
return response([
'status' => 'info',
'title' => 'Opps!',
'message' => 'Yüklediğiniz resme ait aynı adda bir dosya zaten var. Farklı adda bir resim yükleyin.',
'orient' => false,
'location' => null
]);
}else{
if($request->image->storeAs('public/categories', $category->slug.".".$extension)){
$category->image=$category->slug.".".$extension;
}else{
$category->image=null;
}
}
}else{
$category->image=null;
}
$category->parent_category = $request->parent_category;
$category->meta_title = $request->meta_title;
$category->meta_description = $request->meta_description;
$category->meta_description = $request->meta_description;
$category->meta_keywords = $request->meta_keywords;
$category->bottom_showcase = $request->bottom_showcase;
$category->top_showcase = $request->top_showcase;
$category->desk = $request->desk;
$category->status = $request->status;
if($category->save()){
return response([
'status' => 'success',
'title' => 'Başarılı',
'message' => 'Başarılı bir şekilde kategori oluşturuldu.',
'orient' => true,
'location' => route('categories.index')
]);
}else{
return response([
'status' => 'error',
'title' => 'Hata',
'message' => 'Sistemsel bir hata oluştu.. Lütfen durumu bildirin.',
'orient' => false,
'location' => null
]);
}
}
böyle bir yazımın yanlış olduğunu söyleyebilir miyiz?