اطلاع رسانی به کاربران با لاراول

با سلام خسته نباشید 

میخواستم توی سایتم یه قسمتی رو قرار بدم که اگه مطلب جدید یا محصول جدید به سایت اضافه شد بیاد و به تمام کاربرها خبر بده 

برچسب ها:
پرسیده شده در: 3 سال قبل
آمار بازدید: 645
0

سلام وقت بخیر

سوالتون خیلی کلیه و اگر جزئیات مدنظرتون رو گفته بودید بهتر میشد جواب داد

اما بصورت کلی میتونین یه میدل ویر ساده بنویسید که این کار رو اجرا کنه (استاندارد ترین راه حل ممکن)

یا راه ساده تر که من خودم استفاده کردم اینکه که توی کنترلر محصولات تابعی که افزودن محصول جدید به دیتابیس رو مدیریت میکنه رو یکمی دستکاری کنید و یه تابع دیگه رو فراخوان کنید که مشخصات محصول رو بگیره و به همه ایمیل هایی که قبلا توی لیست دلخواهتون مشخص کردید پیام بفرسته. به همین سادگی.

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

مثل کد زیر

    public function store(Request $request)
    {
        $product=new Product();
        $product->name = $request->input('name');
        $product->price= $request->input('price');
        $product->type= $request->input('type');
        $product->color= $request->input('color');
        $product->madeincountry= $request->input('madeincountry');
        $product->save();                   
        $this->SendAlertToAll();
        return redirect('adminDashboard/products');
    }

    public function SendAlertToAll()
    {
        //دستورات مرتبط با ارسال ایمیل
    }

تازه

میتونید یه کار خفن تر هم انجام بدید. توی فرم ثبت محصول یه input  دیگه هم بصورت option بزارید و حق انتخاب رو به ادمین بدید که ایا اطلاع رسانی برای این محصول فعال بشه یا نه و توی کنترلر با توجه به صفر یا یک بودنش اطلاع رسانی رو انجام بدید. یعنی بصورت زیر:

    public function store(Request $request)
    {
        $product=new Product();
        $product->name = $request->input('name');
        $product->price= $request->input('price');
        $product->type= $request->input('type');
        $product->color= $request->input('color');
        $product->madeincountry= $request->input('madeincountry');
        $product->save();                   
        if($request->input('sendToAll'))==1{
        $this->SendAlertToAll();
        }
        return redirect('adminDashboard/products');
    }

    public function SendAlertToAll()
    {
        //دستورات مرتبط با ارسال ایمیل
    }
ارسال شده در: 3 سال قبل
جهت ارسال پاسخ ابتدا عضو سایت شوید.