سلام دوستان میخواستم بدونم شما برای مشکل روبرو چه روشی رو پیشنهاد میکنید :
1-وقتی مقاله کسی با موفقیت پذیرفته میشه یا کامنت کسی توسط ادمین تایید میشه باید یک نوتیفیکشن ارسال بشه و موفقیت امیز بودن اون رو برای کاربر نمایش بده حالا میخواستم بدونم به نظر شما برای این کار دوتا کلاس نوتیفیکیشن بشازم یا فقط یکی بسازم و مقدار نمایشی پیام رو عوض کنم ؟
2-چطور میتونم یک روشته رو از کنترلر بفرستم به کلاس نوتیفیکیش چون وقتی این رشته رو داخل construct میزارم هنگام دپریافت نوتیفیکیشن مقدار نال نمایش داد ه میشه !
@mhyeganeh @gomnam @endworld @meysampro @juza66
سلام مجدد.
دلیل اینکه نال دریافت میکنید داخل متد constructor هست:
public function __construct($message)
{
// نادرست $this->$message = $message ;
$this->message = $message;
}
بخاطر اون علامت $ شما مقداری رو داخل پراپرتی message
نمیریختید واسه همین نال بود
درود
من منظورم مشکل در نمایش نوتیفیکیشن نبود مشکلم در ثبت نوتیفیکیشن در دیتابیس بود ! @endworld
با سلام. معمولا دو کلاس مختلف ساخته میشه توی این موارد که هر کلاسی وظیفه مشخص خودشو داشته باشه. اصل Single Responsibility.
اما خیلی اوقات هم میشه شروطی گذاشت مثل سناریویی که گفتین که دو نوتیفیکیشن که تغییرات جزئی دارند یکی در نظر گرفته بشن.
دو اینکه موردی که گفتین نباید نال باشه میتونید مقادیر دلخواه پارامتر دریافت کنید در constructor و ازشون استفاده کنید. احتمالا یه جایی موردی داشته که نال دریافت کردین. این مورد رو اگر کد بذارید راحت تر میشه راهنمایی کرد
موفق باشید
@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
];
}
}
سلام مجدد.
دلیل اینکه نال دریافت میکنید داخل متد constructor هست:
public function __construct($message)
{
// نادرست $this->$message = $message ;
$this->message = $message;
}
بخاطر اون علامت $ شما مقداری رو داخل پراپرتی message
نمیریختید واسه همین نال بود
عجیبه.
از درست فراخوانی شدن کلاس نوتیفیکیشنتون مطلع بشید. منظورم داخل کنترلر هست . البته در اون صورت باید ارور دریافت کنید موقع ران تایم که مثلا کلاس sucess وجود نداره 🤔
ویرایش: متوجه نشدم مشکلتون حل شده بود. موفق باشید 😎
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟