با سلام خدمت دوستان
من با استفاده از لاراول دارم پروژه restful می نویسم.
اما موضوعی که وجود داره اینه که در بعضی از متد ها ی کنترلر مثل create و update یکسری از کد های duplicate هستند
می خواستم ببینم راهی وحود داره که مثلا متد create و update رو یکی کنیم و یه متد به اسم createOrUpdate بنویسیم ؟
اصلا این داستان اصولی هستش یا خیر؟
اینم بگم که دارم از repository pattern استفاده می کنم
سلام میشه دوتا متد رو یکی کرد ولی چه اشکالی داره که این دو از هم جدا باشن فکرم نکنم کدهاش شبیه به هم باشن چون در یکی داره ساخته میشه در یکی دیگه ادیت میشه و این چیز مهمی نیست و پیشنهاد لاراول هم جدا بودن این دو متد هست اگه مثلا کارها ساده باشه مثل نمایش یه ویو اونوقت میشه متدهارو یکی کرد
Route::match(['post', 'patch'], 'users/create-or-update/{user?}', function (CreateOrUpdateUserRequest $request, User $user = null) {
if ($request->isMethod('post')) {
User::create($request->all());
} else {
$user->update($request->all());
}
});
//کلاس اعتبار سنجی کردن
class CreateOrUpdateUserRequest extends Request
{
public function rules()
{
if ($this->isMethod('post')) {
return [
'name' => 'required',
'email' => 'required|email|unique:users'
];
} else {
return [
'name' => 'required',
'email' => ['required', Rule::unique('users', 'email')->ignore($this->user)]
];
}
}
}
یه اعتبار سنجی ساده هم قرار داده شده تا با نحوه اون هم آشنا بشید
و علامت ؟ جلوی پارامتر user به معنی این است که این پارامتر میتونه اختیاری باشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟