@mohaligateway
@ali.bayat
@hesammousavi
سلام دوستان
من کد زیر را برای وارد کردن تعداد ردیف خیلی زیاد در لاراول نوشتم ولی خطای Call to a member function province() on bool را میده و میگه که sync ها نمیتونه id هر ردیف را بگیره و توی جداول واسط وارد کنه
ولی وقتی بدون sync مینویسم اطلاعات فقط در جدول اصلی وارد میشن
در صورت امکان راهنمایی کنین لطفا / با تشکر
این موارد را با این روش خطا میگیره
$number->province()->sync($data1['province_id']);
$number->city()->sync($data1['city_id']);
$number->operator()->sync($data1['operator_id']);
به جای create از insert هم برای سرعت بیشتر استفاده کردم ولی نمیشه
public function number_store(Request $request)
{
$text = trim($request->list);
$textAr = explode("\n", $text);
$textAr = array_filter($textAr, 'trim'); // remove any extra \r chars
$textAr_unique = array_unique($textAr);
$counter_unique = count($textAr_unique);
$counter = count($textAr);
$data1 = $request->validate([
'list' => ['required'],
'city_id' => ['required'],
'operator_id' => ['required'],
'province_id' => ['required']
]);
$insert_data = [];
foreach ($textAr_unique as $line) {
$replaceR = str_replace("\r", '', $line);
$number = str_replace("\n", '', $replaceR);
if (strlen($number) >= 10) {
$final = '+98' . substr($number, -10);
}
$data = [
'title' => $final,
'created_at' => now()->toDateTimeString(),
'updated_at' => now()->toDateTimeString(),
];
$insert_data[] = $data;
}
$insert_data = collect($insert_data); // Make a collection to use the chunk method
$chunks = $insert_data->chunk(500);
foreach ($chunks as $chunk) {
$number = Number::insert($chunk->toArray());
$number->province()->sync($data1['province_id']);
$number->city()->sync($data1['city_id']);
$number->operator()->sync($data1['operator_id']);
}
Alert::success("$counter_unique شماره غیر تکراری وارد شد", "تعداد $counter شماره در لیست ورودی شما وجود داشت.")->showConfirmButton('متوجه شدم', '#3085d6');
return redirect()->back();
}
به نوب کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟