JsonArray::class, 'is_push'=>'bool', ]; protected $fillable = [ 'title', 'content', 'type', 'ext', 'jump_type', 'jump_link', 'user_id', 'is_push', ]; public function user() { return $this->belongsTo(User::class); } /** * 此消息的推送任务 */ public function pushTasks() { return $this->morphMany(PushMessageTask::class, 'message'); } public static function userMessages(User $user) { return self::where('created_at', '>=', $user->created_at->subDays(7))->where(function ($q) use ($user) { $q->where('user_id', $user->id)->orWhere('user_id', 0); }); } public function needPush() { return $this->is_push; } public function pushMessage() { //填入推送内容 PushMessageTask::create([ 'sn' => serial_number(), 'message_id' => $this->id, 'message_type' => $this::class, ]); } }