- 创建通知
>php artisan make:notification SendMail
在App\Notifications
下面找到刚才创建的通知类打开并编辑.
//SendMail.php
public function via($notifiable)
{
return ['database'];
}
via
方法指定通知使用何种渠道发送,laravel内置的有mail
,database
,'broadcast',nexmo
,slack
这里我们指定database
即通过数据库发送消息.
通过何种渠道发送消息则该类下面必须有一个ToXXX
的方法,例如database
渠道则必须有一个ToDatabase
方法,mail
则必须有一个ToMail
对应.
- 新建方法
//SendMail.php
public function toDatabase($notifiable)
{
return [
'uid'=>99,
'money'=>'$100',
'content'=>$this->content
];
}
- 创建数据表
>php artisan notifications:table
>php artisan migrate
此时在数据库里面已经可以看到notifications
表,它将用来存储消息通知. - 发送消息
//XxxController.php
在控制器中use Notifiable;
class TestController extends Controller
{
use Notifiable;
//发送消息通知测试
public function test()
{
//$user必须是一个用户实例,表示此消息发送给某个用户
//根据测试一次只能发给一个用户,如果可以发送多个用户欢迎留言.
$user = User::find(1);
$user->notify(new SendMail('消息功能测试'));
}
通过浏览器访问一下方法,此时已经可以在数据表notifications
中的data
字段看到刚才发送的内容了.
- 查看消息
//消息通知读取,也可以读取所有的和未读的,具体欢迎看文档.
public function show()
{
$user = User::find(1);
foreach ($user->Notifications as $notification) {
dump($notification->data);
}
}
End