استاد سلام
من يك رابطه one to many دارم زماني كه ddميگيرم واز اون رابطه استفاده ميكنم collection را ميده طبق عكس ولي به تك تك فيلد ها خطا زير را ميده لطفا راهنمايي كنيد
Exception
Property [seller_id] does not exist on this collection instance.
در صورتي كه اين property در كالكشن وجود دارد
با سلام خدمت شما همراه عزیز
شما یک رکورد پیدا نکردید که بتونید از روش به فیلدش برسید
چند رکورد پیدا کردید
اول باید با foreach به تک تکشون دسترسی داشته باشید بعد فیلد
استاد سلام اتفاقا داخل foreach هم گذاشتم ولي بازهم نميتونم به تك تك فيلد ها دسترسي داشته باشم
$stations = Station::all();
foreach($stations as $station)
{
return $station->sales->id;
}
درحالتي كه فقط sales رو ميزارم اكي هست وفيلدها رو نشوم ميده طبق تصوير زير ولي زماني كه id رو ميخوام ارور ميده
Exception
Property [id] does not exist on this collection instance.
خوده sales هم جمع هست و باید به تک تکشون دسترسی داشته باشید بعد برید سراغ id
خوب در رابطه poly many to many به اين شكل تعريف كرديم يعني شما مي فرماييد در ويو كه ميخوام استفاده كنم يك foreach براي stations بزنم ويكي براي sales
بله دیگه اسمش روشه sales ینی جمع
وقتی جمع باشه تا زمانی که به تک تک رکورد ها نرسید نمیتونید بگید id که
خب id کدوم؟ باید مشخص بشه
ممنون استاد حل شد
يه سوال ديگه هم داشتم من در اين جدول sale تاريخ هاي متفاوتي دارم ولي ميخوام بدونم با تاريخ مشابه يعني هر چي تاريخ يكسان در اين جدول هست بياد و به عنوان مثال فروش در اون تاريخ ها رو جمع بزنه و در يك ستون نشون بده و بعد تاريخ بعدي رو به همين شكل يعني جمع فروش روزانه براي هر روز رو ميخوام ولي نميدونم به چه شكل بايد دستور رو بنويسم كه تاريخ يكسان رو پيدا كنه وستون فروش رو جمع بزنه
باید از دستوراتی مثل group by و having در sql استفاده کنید
با سلام خدمت شما همراه عزیز
خیر زیاد مورد بحث نیست sql نویسی
ممنون استاد شما فرمودید ازgroup by و havingاستفاده کنیم همین روش هست دیگه یا روش دیگه ای هم وجود داره وسوال دیگه اینکه برای ارتباط با دیتابیس بهتره که از query builder استفاده کنیم یا از eloquent orm
شما خام نوشتید دستورات اماده این دوتا که عرض کردم هست در لاراول
فرقب نداره ولی eloquent راحت تر هست
استاد سلام مجدد من از document لاراول استفاده كردم و دستور رو به اين شكل نوشتم يعني اين روش شيوه خام دستور هست اگر اسنجوريه لطفا راهنمايي بفرماييد
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();
بله دیگه این روش خام هست
ميشه لطفا دستور رو برام بنويسيد من اسم جدولم sales هست و يك ستون به نام salesnumber دارم كه ميخوام اعداد اين ستون بر مبناي تاريخ با هم جمع بشه و در خروجي به ازاي هر روز يك جمع بنويسه
$sales_days = Sale::groupBy('date')
->selectRaw('SUM(salesnumber) as forosh, date')
->get();
البيته اين روش هم استفاده كردم و جواب داد منظور شما اين روشه
بله