Merhabalar kategoriler tablom var ve kullanıcılar var. İstediğim bir kullanıcı eğer bir kategori eklemişse mesela "deneme" bu kullanıcı bir daha deneme kategorisi ekleyemesin ama diğerleri eklesin . Bununla ilgili bir kod yazdım ama çalışmıyor.Mantık doğru zannediyorum ama kaçırdığım bir nokta var sanırsam.
Controller dosyam
public function memberSubMemberAddSideMaterialCategoriesPost(Request $request)
{
$request->validate([
'category' => ['required','string','max:255', new UniqueCategoryName],
]);
$materialcategory = new MaterialCategory();
$materialcategory->category = $request->category;
$materialcategory->main = 0;
$materialcategory->save();
toastr()->success('Saved Successfully.');
return back();
}
Rules Dosyam
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use App\Models\MaterialCategory;
class UniqueCategoryName implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$category = MaterialCategory::where('category', $value)->first();
// Kategori mevcut değilse ve ekleyen kullanıcı aynı değilse geçersiz olur
return !$category && $category->created_by_id !== auth()->id();
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'This record has already been added';
}
}
Ama mesela ben denemeyi eklediğimde diğer kullanıcıya girdiğimde o denemeyi ekleyemiyor nedenini anlamadım hala teşekkürler.