راکت
حل شده

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

7 پاسخ

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

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

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

ثبت پرسش جدید

پاسخ‌ها

7
اشکان فکری
اشکان فکری
@ashkanfekridev

تخصص: backend developer

بهترین پاسخ
    $userDuplicated = DB::table('users')
        ->select('name', DB::raw('COUNT(*) as `count`'))
        ->groupBy('name')
        ->having('count', '>', 1)
        ->get();

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

Saman
Saman
@samanzdev

تخصص: برنامه نویس وب

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

ModelName::where($column, 'like', $value)->get(); 
علی کوندری
علی کوندری
@alikavandary.77

@samanzdev

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

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

شاید پاسخ شما همین‌جا باشد

سهیل ملکی
سهیل ملکی
@soheilsmg

تخصص: کارآموز برنامه نویسی

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

علی کوندری
علی کوندری
@alikavandary.77

@ashkanfekridev

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

اشکان فکری
اشکان فکری
@ashkanfekridev

تخصص: backend developer

    $userDuplicated = User::whereIn('name', function ($query) {
        $query->select('name')
            ->from('users')
            ->groupBy('name')
            ->havingRaw('count(*) > 1');
    })->get();

    return $userDuplicated;

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

علی کوندری
علی کوندری
@alikavandary.77

@ashkanfekridev

خیلی ممنونم

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

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