علی کوندری
3 سال پیش توسط علی کوندری مطرح شد
7 پاسخ

گرفتن اطلاعا ت از دیتابیس لاراول

با سلام و وقت بخیر

من میخوام در لاراول یه شرط بنویسم که مثلا همه کاربرانی که اسمشون یکی هست رو از دیتابیس در بیارم

چطور این شرط رو بنویسم ؟


ثبت پرسش جدید
اشکان فکری
تخصص : backend developer
@ashkanfekridev 3 سال پیش مطرح شد
1
    $userDuplicated = DB::table('users')
        ->select('name', DB::raw('COUNT(*) as `count`'))
        ->groupBy('name')
        ->having('count', '>', 1)
        ->get();

این کد رو تست کن


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

سلام
می تونید از این کد استفاده کنید.

ModelName::where($column, 'like', $value)->get(); 

علی کوندری
@alikavandary.77 3 سال پیش آپدیت شد
0

@samanzdev

خب من اسم خاصی هم مد نظرم نیست میخوام همه ی تکراری ها رو در بیارم

مثلا دو تا علی هست و دو تا محمد
همه در بیاد


سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

داخل همون کدی که دوستمون دادن مقدار column رو بذارید نام و value رو بذارید علی یا محمد دیگه بعد تمام اسم های مشابه علی یا محمد براتون میاره


اشکان فکری
تخصص : backend developer
@ashkanfekridev 3 سال پیش مطرح شد
1
    $userDuplicated = DB::table('users')
        ->select('name', DB::raw('COUNT(*) as `count`'))
        ->groupBy('name')
        ->having('count', '>', 1)
        ->get();

این کد رو تست کن


علی کوندری
@alikavandary.77 3 سال پیش مطرح شد
0

@ashkanfekridev

خیلی ممنونم کد درسته و تکراری هارو برمیگردونه فقط یک مشکل هست اونم اینکه الان فقط name + count رو برمیگردونه من اطلاعات کامل یوزر رو نیاز دارم.
ممنون میشم راهنمایی کنید.


اشکان فکری
تخصص : backend developer
@ashkanfekridev 3 سال پیش آپدیت شد
1
    $userDuplicated = User::whereIn('name', function ($query) {
        $query->select('name')
            ->from('users')
            ->groupBy('name')
            ->havingRaw('count(*) > 1');
    })->get();

    return $userDuplicated;

با این روش کل دیتای یوزر هستش


علی کوندری
@alikavandary.77 3 سال پیش مطرح شد
0

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام