2017-09-08 53 views
0

问题:我不能检索JavaScript文件中Laravel 5.4广播检索结果从DB与存取到socket.io或JavaScript

方案的访问参数:

  1. 获取数据
  2. 修改检索到的数据与Accessors
  3. 通过事件广播给听众
  4. 在j中捕获广播事件avascript with socket.io

App/SomeModel.php我正在通过使用Eloquent对检索到的数据进行操作。

根据优先级编号,我为引导样式指定了正确的类名。

/** 
* Gets corresponding class name based on priority level. 
* 
* @return string 
*/ 
public function getPriorityClassAttribute(): string 
{ 
    switch ($this->priority) { 
     default: 
      return ''; 
     case 1: 
      return 'info'; 
     case 2: 
      return 'success'; 
     case 3: 
      return 'warning'; 
     case 4: 
      return 'danger'; 
    } 
} 

然后我可以在整个应用程序的任何地方访问$somedata->priority_class

但我无法将这些数据传递给javascript中的监听器。我不知道如何将它添加到数据对象。

这里是我的事件广播公司var_dump()

#attributes: array:2 [ 
"priority" => 2 
"id" => 128 

]

为什么没有priority_class而它的工作原理,如果我想$somedata->priority_class

任何提示?

回答

0

Got it!我所要做的只是将一个属性插入protected $appends数组;

/** 
* Append accessors to JSON response 
* 
* @var array 
*/ 
protected $appends = [ 
    'priority_class' 
];