2017-09-08 60 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' 
];