یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام من در حال کار روی پروژه تمرینی به آدرس زیر هستم :
https://didi.nikan-amlak.com/cat
در آدرس بالا وقتی تغییری ایجاد میکنیم، اطلاعات به شکل ایجکس به کنترل مربوطه ارسال و به شکل زیر پردازش میشن:
آیا این کدی که نوشتم بهینه هستش؟
آیا این شکل کد نویسی درست است؟
protected function save(Request $request , Category $category)
{
foreach ($request['list'] as $key => $item)
{
if (isset($item['children'])) {
$bet = Category::where('title', $item['name'])->doesntExist();
$cat = Category::where('title', $item['name'])->first();
$input['title'] = $item['name'];
$input['slug'] = $item['slug'];
$input['parent_id'] = '0';
$input['position'] = $key;
$input['display'] = $item['deleted'];
$cat->update($input);
foreach ($item['children'] as $key2 => $item2) {
$cat2 = Category::where('title', $item2['name'])->first();
$input['title'] = $item2['name'];
$input['slug'] = $item2['slug'];
$input['parent_id'] = $item['id'];
$input['position'] = $key2;
$input['display'] = $item2['deleted'];
$cat2->update($input);
if (isset($item2['children'])) {
foreach ($item2['children'] as $key3 => $item3) {
$cat3 = Category::where('title', $item3['name'])->first();
$input['title'] = $item3['name'];
$input['slug'] = $item3['slug'];
$input['parent_id'] = $item2['id'];
$input['position'] = $key3;
$input['display'] = $item3['deleted'];
$cat3->update($input);
}
}
}
}
else {
$cat = Category::where('title', $item['name'])->first();
$input['title'] = $item['name'];
$input['slug'] = $item['slug'];
$input['parent_id'] = '0';
$input['position'] = $key;
$input['display'] = $item['deleted'];
$cat->update($input);
}
}
}
در هر تابع حداکثر خطوط کد باید ۲۵ خط باشه. اگه بیشتر بشه میزان پیچیدگی تابع رو بالا میبره و خواناییش رو کم میکنه.
@khanzadimahdi
@Alimotreb
@hesammousavi
بالاخره برای بدست آوردن فرزدن باید foreach رو درون foreach دیگه قرار بدم و فقط ریفکتور کنم درسته؟
به طور مثال یه تابع دیگه بنویسم که مقادیر بگیره و به شکل زیر انجام بده اوناور :
$cat = Category::where('title', $item['name'])->first();
$input['title'] = $item['name'];
$input['slug'] = $item['slug'];
$input['parent_id'] = '0';
$input['position'] = $key;
$input['display'] = $item['deleted'];
$cat->update($input);
و در آخر درون هر foreach فقط اون تابع صدا بزنم و وردی هارو بهش پاس بدم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟