سلام
من یه جدول دارم که 15000 رکورد داره که که این 15000 تا تعداد کاربران من هستن و role هرکدومشون 0 و حالا الان میخوام role تمام کاربران رو 1 کنم ولی با ارور Maximum execution time of 60 seconds exceeded مواجه میشم مشکل چیه ممنون ؟
سلام بدلیل تعداد بالای کاربران و منتظر ماندن لاراول برای mysql این فرایند بسیار طول می کشد.
می توانید از این فانکشن استفاده کنید.
سعی کنید ثانیه رو بسیار بالا قرار بدهید تا به این اررور برخورد نکنید.
دوست عزیز chunk برای collection ها هست و زیاد به کار شما ربطی ندارد اما می توانید استفاده کنید. مثلا :
\App\Models\User::all()->each(function ($user) {
/* Do something */
});
یه سوال دیگه داشتم اون این هستش که وقتی از دیتابیس اطلاعاتم رو میگیرم به این شکل برمیگردونه
ولی وقتی خودم یک کالکشن میسازم به این شکل نشون میده
واین خیلی جاها مشکل ساز میشه مثال زمانی که من میخوام از duplicates استفاده کنم توی عکس اول هیچی برنمیگردونه ولی توی عکس دوم که کالکشن به اون شکل هست خیلی راحت مقادیری که دوبار تکرار شدن رو برمیگردونه و من در واقع نمیدونم چجوری باید از داده هایی که از دیتابیس میان تعیین کنم که مثلا فیلد name کجاها دوبار تکرار شده
لطفا اگه کدی رو دارید برام قرار بدید ممنون
@websaz
وقتی مثلا این کد را \App\Models\User::all()
اجرا می کنید یک query دیتابیس به شما می دهد که مقداری که شما می خواهید هم در ان وجود دارد اما در collection این مقادیر وجود ندارد مثلا فانکشن save روی item اول.
اگر روی یک query متد toArray رو اجرا کنید می توانید به شکل یک array مشاهده کنید.
@MM20001378
ببینید خب duplicates فقط رو collection ها اجرا میشه دیگه وقت من روی مثلا users هام که از دیتابیس اومده یک toArray بزنم اینا دیگه کاربرانم تبدیل به یه ارایه شدن و نمیتونم از متد duplicates استفاده کنم مشکل من اینجاست که چ با toArray چ بدون toarray نمیتونم از داخل داده هایی که از دیتابیس اومده تعیین کنم کدوماش دوبار تکرار شده
نمیدونم منظورمو فهمیدید یا ن ولی اگه متوجه نشدید بگید با عکس توضیح بدم
و ضمن اینکه بخوام سوالمو خیلی بهتر بیان کنم من میخوام از داده هایی که از دیتابیس میاد با استفاده از duplicates تعیین کنم کدوم داده ها دوبار تکرار شده اگر کدی برای این دارید خواهشا عکسشو برام بزارید ممنون
@websaz
@samanzdev
سوالم بیشتر اینه که چرا کار نمیکنه ؟
$categories = Category::get();
$categories = $categories->duplicates('name');
return $categories;
این کد
اینم عکس چیزی برمیگردونه در واقع هیچی برنمی گردونه
@websaz
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟