لاراول

- 4 ماه پیش
توسط Alimotreb آپدیت شد
emran rostam zade ( 755 تجربه )
4 ماه پیش

سلام وقتتون بخیر
یه سوال در باره لاراول اگه مقدور باشه راهنماییم کنین
مکشل من اینه که یه سری اطلاعات از سمت کاربر ارسال میشه که تو این قسمت یه مبلغم هست وقتی کاربر مبلغو میفرسته من تو جدول یه رکورد برای این گذاشتم که دررصدی از اون مبلغ از اون مبلغ ثبت شه ولی برای این که اون در صد ثبت شه سه تا شرط لازمه که اگ مبلغی که از سمت کاربر فرستاده شده مثلا ۵۱تومن بود با ۵درصد اگه ۱۰۰تومن بود با ۷درصد و بیشتر از ۲۰۰تومن بود با ۱۰ درصد الان من نمیتونم این قسمت درصدی از اون مبلغ رو تو جدول به ثبت برسونم ممکنه راهنماییم کنین؟

public function store(Request $request)
{
$data = $request->validate([
"hospital" => "required|string|between:۴,۱۰۰",
"name" => "required|string|between:۴,۱۰۰",
"lastname" => "required|string|between:۴,۱۰۰",
"prices" => "required|string|between:۴,۱۰۰",
"date" => "required|date",
]);

     if ( $request->prices <= 510000) {
        $data['wage'] =  $request->prices * 5 / 100;

    }elseif (  $request->prices <= 1000000) {
        $data['wage'] =  $request->prices * 7 / 100;

    }elseif ( $request->prices <= 2000000) {
        $data['wage'] =  $request->prices * 10 / 100;

    }

    SinaHospital::create($data);

   return back();
}
Alimotreb ( 133382 تجربه )
4 ماه پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام

@rostamzadeemran93

به این شکل در کنترلر عمل کنید و تست بگیرید

$this->validate($request,[
"hospital" => "required|string|between:4,100",
"name" => "required|string|between:4,100",
"lastname" => "required|string|between:4,100",
"prices" => "required|string|between:4,100",
"date" => "required|date",
]);

 $data = [
            'wage' => $request->input('prices'),
//بقیه مواردی هم که میخوایید و در فرم دارید همینجا بنویسید و ذخیره کنید در این آرایه
            ]

if ( $request->input('prices') <= 510000) {
        $data['wage'] =( $request->input('prices') * 5 )/ 100;

    }elseif (  $request->input('prices') <= 1000000) {
        $data['wage'] = ( $request->input('prices') * 7) / 100;

    }elseif ( $request->input('prices') <= 2000000) {
        $data['wage'] =  ($request->input('prices') * 10) / 100;

    }

SinaHospital::create($data);

به نظر من به این شکل عمل کنید
اگر اروری هم دارید بزارید تا بررسی شه

emran rostam zade ( 755 تجربه )
4 ماه پیش

سلام @Alimotreb
متاسفانه کار نکرد وقتی dd($data) رو یه ارایه برگردوند که توش مقداری هست که تو فیلد پرایس نوشته شده
array:1 [▼
"wage" => "2500000"
]

Alimotreb ( 133382 تجربه )
4 ماه پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@rostamzadeemran93

ارورتون سینتکسی هست
برای این کار از سوییچ هم میتونید استفاده کنید
یا if های جدا از هم بنویسید
فرقی نداره
با هر 3 حالت تست بگیرید

emran rostam zade ( 755 تجربه )
4 ماه پیش

نه نه من حواسم نبود @Alimotreb
مشکل اصلی ارور بخاطر این بود که ارایه رو نبسته بودم

emran rostam zade ( 755 تجربه )
4 ماه پیش

الان مشکل اینه کلا همون ارایه رو که فقط بر میگردونه @Alimotreb
متاسفانه کار نکرد وقتی dd($data) رو یه ارایه برگردوند که توش مقداری هست که تو فیلد پرایس نوشته شده
array:6 [▼
"bimarestan" => "بیمارستان سینا"
"name" => "علیرضا"
"lastname" => "رستم زاده"
"prices" => "2500000"
"date" => "1371/12/29"
"wage" => "2500000"
]
من میخام wage یه درصدی از prices باشه

Alimotreb ( 133382 تجربه )
4 ماه پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@rostamzadeemran93

بعد از اینکه مقدار رو گرفتید
تغییرات رو بدید
و اصلا توی یه متغیر دیگه ذخیره کنید
فرقی نداره
تغییراتتون رو اعمال کنید
خط به خط هم DD بگیرید
و بعد اطلاعات رو ذخیره کنید

emran rostam zade ( 755 تجربه )
4 ماه پیش

@Alimotreb
وارد if نمیشه که عملیات اعمال بشه روش
array:۶ [▼
"bimarestan" => "بیمارستان سینا"
"name" => "علیرضا"
"lastname" => "رستم زاده"
"prices" => "۲۵۰۰۰۰۰"
"date" => "۱۳۷۱/۱۲/۲۹"
"wage" => "۲۵۰۰۰۰۰"
]
من میخام wage یه درصدی از prices باشه

emran rostam zade ( 755 تجربه )
4 ماه پیش

@Alimotreb
دستت درد نکنه مشکلم حل شد ♥

Alimotreb ( 133382 تجربه )
4 ماه پیش
تخصص : کانفیگ سرور و برنامه نویس

خواهش میکنم
@rostamzadeemran93

برای ارسال پاسخ باید وارد سایت شوید