使用通知是关键的

时间:2016-12-28 16:10:22

标签: php eloquent laravel-5.3

我正在尝试使用laravel 5.3通知系统。我在几个型号上有很多关系。我需要做的是遍历所有请求数据并向适当的每个人发送通知。似乎通知方法在foreach循环中不起作用。错误是:

Builder.php第2448行中的BadMethodCallException: 调用未定义的方法Illuminate \ Database \ Query \ Builder :: routeNotificationFor()

我想弄清楚的代码是:

 public function storeHoursused(Request $request, Lessonhours $lessonhours)
{ 
    $this->validate($request, [
        'date_time' => 'required',
        'numberofhours' => 'required|numeric',
        'comments' => 'required|max:700'
    ]);
    $hoursused = new Hoursused();
    $hoursused->date_time = $request['date_time'];
    $hoursused->numberofhours = $request['numberofhours'];
    $hoursused->comments = $request['comments'];
    $lessonhours->hoursused()->save($hoursused);
    foreach($lessonhours->players as $player){
            $player->users;
            Notification::send($player, new HoursusedPosted($player->user));
            //$lessonhours->player->notify(new HoursusedPosted($lessonhours->player->users));
        }


           return back()->with(['success' => 'Hours Used successfully added!']); 

}

有没有办法收集相关数据并传递给通知方法?

更新: 玩家模型看起来像:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Collective\Html\Eloquent\FormAccessible;
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Notifiable;
use Carbon\Carbon;


class Players extends Model
{
public $table = "players";

protected $fillable = array('fname', 'lname', 'gender', 'birthdate');


public function users()
{
    return $this->belongsTo('App\User', 'users_id');
}

public function lessonhours()
{
    return $this->belongsToMany('App\Lessonhours', 'lessonhour_player',     'players_id', 'lessonhours_id')
                                    ->withTimestamps();
}

public function getFullName($id)
{
    return ucfirst($this->fname ) . ' ' . ucfirst($this->lname);
}

protected $dates = ['birthdate'];
protected $touches = ['lessonhours'];

public function setBirthdateAttribute($value)
{
    $this->attributes['birthdate'] = Carbon::createFromFormat('m/d/Y',    $value);
  }
}

1 个答案:

答案 0 :(得分:2)

您的$player模型需要使用Illuminate\Notifications\Notifiable trait