使用JavaScript包

时间:2017-03-08 03:02:26

标签: javascript php laravel-5

我正在向路径发送一个get请求,我的控制器从数据库中获取一个集合,然后使用Laracasts Javascript类将其放入一个javascript变量(可以找到here。它是一个Php变量javascript变量变换器 - 我认为它是以非常标准的方式实现的)

我这样做:

$unReadNotifications = \App\Notification::join('users', 'notifications.notifier_user_id', '=', 'users.id')
    ->where('notifications.user_id', '=', $user->id)
    ->where('is_read', '=', 0)
    ->select('users.id as notifierId', 'users.username as username', 'notifications.id as id', 'notifications.subject as subject', 'notifications.body as body', 'notifications.notifiable_type as notifiable_type', 'notifications.notifiable_id as notifiable_id')
    ->orderBy('notifications.created_at', 'desc')
    ->with('notifiable')->get();

JavaScript::put(['unReadNotifications' => $unReadNotifications]);

我得到了:

BadMethodCallException in Builder.php line 2405:
Call to undefined method Illuminate\Database\Query\Builder::getTagNameListAttribute()

我做了一个grep -r getTagNameListAttribute *,它在我的项目中出现的唯一位置是在一个模型中(模型实际上是相关的:我的一些通知属于一个Notifiable,属于一个内容 - 这个内容模型是那个有一个名为getTagNameListAttribute的方法,在该模型中有一个追加数组,它将该方法的输出附加到模型,如:protected $appends = ['tag_name_list'];)。

运行JavaScript::put(['unReadNotifications' => $unReadNotifications]);时发生错误,因为当我在此之前放置dd时,一切正常,并且在我仍然收到错误后的任何时间。

我猜Javascript :: put以某种方式调用某种通知的通知内容。当所有通知都是他们的通知具有内容的类型时,此代码有效,但现在当通知的通知没有内容时,我收到此错误。但我真的不明白为什么会这样做。

关于发生了什么的任何想法?

0 个答案:

没有答案