Resim için Store metodu kolaydı tüm alanlar boş geliyo ve StoreBrandRequest basitti
public function rules(): array
{
return [
'name' => 'required|unique:brands|min:3|max:15',
'image' => 'required|image|max:2048|mimes:jpeg,png,jpg'
];
}
boş alanları kontrol et , kuralları geçiyor ise resime benzersiz bir ad ver nereye kaydolacagını belirterek
Brand::create([
'name' => $validated['name'],
'slug' => Str::slug($validated['name']),
'image' => $imageFile->storeAs("brand", $Filename , "public"),
]);
return redirect()->route('brands.index')->banner('Marka Başarıyla Eklendi. ');
işlemi bitir .
Update işlemi zormuş ve haliyle takıldım bende tabi benim için zor sizler sayısız defa yaptığınız için yürür gibi yapıyosunuz böyle zamanlarda yoksa "shipbuilding in a bottle" olayınamı girseydim diyorum neyse
UpdateBrandRequestim
public function rules(): array
{
return [
'name' => 'required|unique:brands|min:3|max:15',
'image' => 'image|max:2048|mimes:jpeg,png,jpg'
];
}
isim mecbur olmalı boş geçilmemeli , birde benzersiz olmak zorunda
Controller ise
public function update(UpdateBrandRequest $request, Brand $brand)
{
$validated = $request->validated();
if ($request->hasFile('image')) { // bu satırda => $validated['image']->hasFile hata verdi
$imageFile =$validated['image'];
$originalName = $imageFile->getClientOriginalName();
$originalExtension = $imageFile->getClientOriginalExtension();
$explodeName = explode(".", $originalName)[0];
$Filename = Str::uuid($explodeName). ".".$originalExtension;
}
$brand->update([
'name' => $validated['name'],
'slug' => Str::slug($validated['name']),
'image' => $imageFile->storeAs("brand", $Filename , "public"),
]);
return redirect()->route('brands.index')->banner('Marka Başarıyla Eklendi. ');
}
Öncelikle name alanım dolu geliyo ve UpdateBrandRequestim içindeki unique:brands kuralı yüzünden olduğu gibi bırakamıyorum mutlaka değiştirmek zorunda oluyorum yani biri sadece resmi değiştirmek isterse adıda değiştirmek zorundaki devam edebilsin sanırım bu kuralı update için kaldırmalıyım değilmi ?
Not: Bunun bilimsel bir açıklaması var mıdır bilmiyorum ama yazarak daha iyi düşünebiliyor insan .
peki UpdateBrandRequestim den benzersiz kuralını kaldırdım marka index tablosundan ilgili marka olan (Dünyanın en iyi Portakal markası) SARIÇOBAN için düzenleye bastım ve Name alanım SARIÇOBAN olarak dolu geldi , update edicem tam burda kayıt esnasında yaptığım benzersizlik kontrolu boşa çıkıyor yani update ederken daha önce kaydettiğim bir marka adını tekrar kullanaraka aynı isimden tabloda iki marka olabiliyor
1.sorum
Tıpkı resmin varlığını kontrol ettiğim gibi markanın adının benzersizliğini bir if ile controllerda nasıl kontrol edebilirim.
ikinci soru resim update ile ilgiliydi şu an unttum .