amir
3 سال پیش توسط amir مطرح شد
9 پاسخ

کاربا notifications در لاراول

سلام دوستان میخواستم بدونم شما برای مشکل روبرو چه روشی رو پیشنهاد میکنید :
1-وقتی مقاله کسی با موفقیت پذیرفته میشه یا کامنت کسی توسط ادمین تایید میشه باید یک نوتیفیکشن ارسال بشه و موفقیت امیز بودن اون رو برای کاربر نمایش بده حالا میخواستم بدونم به نظر شما برای این کار دوتا کلاس نوتیفیکیشن بشازم یا فقط یکی بسازم و مقدار نمایشی پیام رو عوض کنم ؟
2-چطور میتونم یک روشته رو از کنترلر بفرستم به کلاس نوتیفیکیش چون وقتی این رشته رو داخل construct میزارم هنگام دپریافت نوتیفیکیشن مقدار نال نمایش داد ه میشه !
@mhyeganeh @gomnam @endworld @meysampro @juza66


ثبت پرسش جدید
سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
1

سلام مجدد.
دلیل اینکه نال دریافت میکنید داخل متد constructor هست:


    public function __construct($message)
    {
      // نادرست  $this->$message = $message ;  
            $this->message = $message;
    }

بخاطر اون علامت $ شما مقداری رو داخل پراپرتی message نمیریختید واسه همین نال بود


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

درود...
از این روش استفاده کن که عالیه...
پیوند زیر:
https://yun.ir/hn2hv1


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
0

درود
من منظورم مشکل در نمایش نوتیفیکیشن نبود مشکلم در ثبت نوتیفیکیشن در دیتابیس بود ! @endworld


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
1

با سلام. معمولا دو کلاس مختلف ساخته میشه توی این موارد که هر کلاسی وظیفه مشخص خودشو داشته باشه. اصل Single Responsibility.
اما خیلی اوقات هم میشه شروطی گذاشت مثل سناریویی که گفتین که دو نوتیفیکیشن که تغییرات جزئی دارند یکی در نظر گرفته بشن.

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


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

@behzadi
مثل راکت که اعلان های خوانده شده نمایش میده؟


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش مطرح شد
1

@SobhanDadkhah درود سبحان جان
این کدهای کنترلر برای ارسال نوتیفیکیشن :

        $user = User::find($user_id->builder_id) ; 
        $res = Notification::send($user , new success('مقاله شما با موفقیت تایید شد!')) ;

این کد های کلاسی که نوتیفیکیشن رو میفرسته :

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class success extends Notification
{
    use Queueable;
    public $message ; 
    /**
     * Create a new notification instance.
     *
     * @return void
     */

    public function __construct($message)
    {
        $this->$message = $message ;  
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['database'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    // public function toMail($notifiable)
    // {
    //     return (new MailMessage)
    //                 ->line('The introduction to the notification.')
    //                 ->action('Notification Action', url('/'))
    //                 ->line('Thank you for using our application!');
    // }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {

        return [
            'message' => $this->message
        ];
    }
}

سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
1

سلام مجدد.
دلیل اینکه نال دریافت میکنید داخل متد constructor هست:


    public function __construct($message)
    {
      // نادرست  $this->$message = $message ;  
            $this->message = $message;
    }

بخاطر اون علامت $ شما مقداری رو داخل پراپرتی message نمیریختید واسه همین نال بود


amir
تخصص : بک اند و فرانت اند
@behzadi 3 سال پیش آپدیت شد
1

@SobhanDadkhah خیلی عجیب بود نه vsc ارور میداد نه خوده سایت تشکر


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش آپدیت شد
1

عجیبه.
از درست فراخوانی شدن کلاس نوتیفیکیشنتون مطلع بشید. منظورم داخل کنترلر هست . البته در اون صورت باید ارور دریافت کنید موقع ران تایم که مثلا کلاس sucess وجود نداره 🤔


ویرایش: متوجه نشدم مشکلتون حل شده بود. موفق باشید 😎


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

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