🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۰ اعظم السادات حسینی
مقداردهی در جدول
جامعه لاراول ایجاد شده در ۲۶ تیر ۱۴۰۲

سلام ببخشید من ستون‌های جدول productsرو ایجاد کردم ولی میخوام به ایدی اول مثلا مقدار 200 تومن بدم و یا ایدی دوم مقدار 100 تومن بدم چ جوری باید مقدار دهی کنم

public function up(): void
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->float('price');
        $table->foreignId('transaction_id');
    });
}

اینم اینجوری نوشتم

سلام، میتونید از Seeder‌ها و Factory‌ها استفاده کنین تا داده‌های اولیه رو داشته باشین.

صادق برزگر ۲۶ تیر ۱۴۰۲، ۰۸:۳۹

ببخشید دقیقا میتونید بگید چجوریباید انجام بدیم توی فیلم‌ها توضیح ندادند که اگر بخواهیم مقادیر متفاوت بدیم ک فیکر هم نباشند مثلابرای priceچجوری باید مقدار دهی کنیم که همه رو باهم ذخیره کند

اعظم السادات حسینی ۲۶ تیر ۱۴۰۲، ۱۱:۰۰

سلام

داخل فکتوریتون از متد randomElement فیکر استفاده کنید که ۱۰۰ و ۲۰۰ رو رندوم بزاره.

$faker->randomElement([100,200]);
احمدرضا فاطمی کیا ۲۶ تیر ۱۴۰۲، ۱۱:۱۸

من نمیخوام رندوم باشه میخوام به priceخودم مقادیر بدم و در یک دستور باشه که توی هاست همش در جدول insert بشه

اعظم السادات حسینی ۲۶ تیر ۱۴۰۲، ۱۱:۲۰

خب متد create رو که از فکتوری صدا میزنید به عنوان یک آرایه keyValue مقدار price رو ست کنید.

Product::factory()->create(['price'=>200]);
احمدرضا فاطمی کیا ۲۶ تیر ۱۴۰۲، ۱۵:۳۵

خب درسته من میخوام با همین دستور دوتا مقدار بدم ک یکیش برای. Id اول ودومیش برای idدوم اینو چ جوری مقدار بدم

اعظم السادات حسینی ۲۶ تیر ۱۴۰۲، ۱۷:۴۱

آیدی دوم هم با مدل ترنسکشن ایجاد کنید و به آرایه بدید.

احمدرضا فاطمی کیا ۲۶ تیر ۱۴۰۲، ۱۸:۱۲

چ جوری باید انجام بدم

اعظم السادات حسینی ۲۶ تیر ۱۴۰۲، ۱۸:۱۴
Product::factory()->create(['price'=>200,'transaction_id'=>Transaction::factory()->create()]);

و آیدی رو دریافت کنید.

احمدرضا فاطمی کیا ۲۶ تیر ۱۴۰۲، ۱۸:۳۴

اونوقت دقیقا چ جوری به‌price دوتا مقدار با دوتا ایدی مختلف بدم یکی مقدار ۱۰۰ یکی مقدار دویست منظورم اینه در جدول price دوتا سطر با دوتا مقدار ۱۰۰و۲۰۰

اعظم السادات حسینی ۲۶ تیر ۱۴۰۲، ۱۹:۳۷