سلام خدمت دوستان یه سوالی داشتم اونم اینه که چه موقعی باید از بحث ارور هندلینگ استفاده کرد چون تا جایی که من چک کردم لاراول به صورت پیش فرض تمام ارور های ما رو پوشش میده از ارور های ۴۰۰ و... پس چه زمانی ما باید از این موضوع استفاده کنیم
@erfanmohseni406
@hosseinshirinegad98
در پوشه views لاراول یه پوشه به نام errors بسازید بعد برای مدریت هر Exception یه ویو با کد همون خطا ایجاد کنید برای مثال زمانی که از متدهای firstOrFail یا findOrFail استفاده میکنیم اگه دیتای مورد نظر پیدا نشه خطا با کد 404 نشون داده میشه برای مدریت این خطا در پوشه ای که عرض کردم یه فایل با نام 404.blade.php ایجاد میکنی و پیام مورد نظرتو درش مینویسی هر زمان تو برنامت خطای 404 داده شد این ویو توسط لاراول خودکار بارگزاری میشه
یا میتونی در پوشه Exceptions فایل Handler.php متد register رو برای هر استثنایی به صورت زیر بنویسی
ابتدا هر چیزی داخل متد register هست رو پاک کن بعد اینطوری خطاهارو مدریت کن
$this->renderable(function (ModelNotFoundException $e, $request) {
if ($request->wantsJson()) {
return response([
'status' => 'error',
'messages' => 'Object not found',
], Response::HTTP_NOT_FOUND);
} else {
return view('errors.404');
}
});
دقت کن در قسمت اول if چک شده که اگه استثنا در قسمت api رخ بده ما بجای ویو باید یه پاسخ جیسان به کاربر برگردونیم (در api نویسی ما که ویو بر نمیگردونیم و همیشه پاسخ ها رو به صورت جیسان برمیگردونیم)اما اگر استثنا در قسمت وب اپ ما رخ داد میتونیم یه ویو به کاربر نشان بدیم
متد wantsJson مشخص میکنه که کاربر برای استثنای رخ داده شده جیسان میخواد یا نه یک ویو میخواد به کاربر نشان بده
سلام لاراول پوشش میده ولی برای سفارشی سازی پیامهای ارورها شما باید پیام دلخواه یا فارسیتونو در سایت نشون بدین به همین خاطر بحث شخصی سازی پیامهای ارور به میان میاد اگه برنامتون دارایapiهست خب مقداری هندل کردن ارورها متفاوتر میشه اما در بخش وب برنامتون به راحتی میتونید برای هر ارور یه ویو درست کنید اما زمان استفاده ازapiبرای هر ارور باید یه ریسپانس جیسان به کاربر برگردونید
تفاوت این دورو متوجه میشوید
در بخش وب برنامتون برای هر ارور میتونید یه ویو نمایش بدین تما در بخش apiباید جیسان بدین
میشه یه مثال یا یه منبع معرفی کنید که ببینم چجوری باید پیام هارو فارسی نشون بدم؟
@hosseinshirinegad98
در پوشه views لاراول یه پوشه به نام errors بسازید بعد برای مدریت هر Exception یه ویو با کد همون خطا ایجاد کنید برای مثال زمانی که از متدهای firstOrFail یا findOrFail استفاده میکنیم اگه دیتای مورد نظر پیدا نشه خطا با کد 404 نشون داده میشه برای مدریت این خطا در پوشه ای که عرض کردم یه فایل با نام 404.blade.php ایجاد میکنی و پیام مورد نظرتو درش مینویسی هر زمان تو برنامت خطای 404 داده شد این ویو توسط لاراول خودکار بارگزاری میشه
یا میتونی در پوشه Exceptions فایل Handler.php متد register رو برای هر استثنایی به صورت زیر بنویسی
ابتدا هر چیزی داخل متد register هست رو پاک کن بعد اینطوری خطاهارو مدریت کن
$this->renderable(function (ModelNotFoundException $e, $request) {
if ($request->wantsJson()) {
return response([
'status' => 'error',
'messages' => 'Object not found',
], Response::HTTP_NOT_FOUND);
} else {
return view('errors.404');
}
});
دقت کن در قسمت اول if چک شده که اگه استثنا در قسمت api رخ بده ما بجای ویو باید یه پاسخ جیسان به کاربر برگردونیم (در api نویسی ما که ویو بر نمیگردونیم و همیشه پاسخ ها رو به صورت جیسان برمیگردونیم)اما اگر استثنا در قسمت وب اپ ما رخ داد میتونیم یه ویو به کاربر نشان بدیم
متد wantsJson مشخص میکنه که کاربر برای استثنای رخ داده شده جیسان میخواد یا نه یک ویو میخواد به کاربر نشان بده
بعد اگر بخوام داده هارو بصورت جیسون برگردونم اون هم به همین شکله یا تفاوت داره
@hosseinshirinegad98
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟