Отношение для Json Array Column - PullRequest
0 голосов
/ 07 ноября 2019

Определение отношения для столбца Ларавела Джсона.

Модель: налог

<table>
  <tr>
    <th>id</th>
    <th>name</th>
    
  </tr>
  <tr>
    <td>1</td>
    <td>CGST</td>
    
  </tr>
  <tr>
    <td>2</td>
    <td>SGST</td>    
  </tr>
  <tr>
    <td>3</td>
    <td>IGST</td>    
  </tr>
  <tr>
    <td>4</td>
    <td>UGST</td>    
  </tr>
 
</table>

Модель: TaxGroup

<table>
  <tr>
    <th>id</th>
    <th>group_name</th>
    <th>tax_values</th>
  </tr>
  <tr>
    <td>1</td>
    <td>Standard</td>
    <td>[{"tax_id":1,"tax_rate":0},{"tax_id":2,"tax_rate":0}]   </td>
  </tr>
  <tr>
    <td>1</td>
    <td>Custom</td>
    <td>[{"tax_id":1,"tax_rate":0},{"tax_id":2,"tax_rate":0}]   </td>
  </tr>
 
</table>

Уже пробовал

Определил это отношение в модели TaxGroup

public function tax() {
   return $this->hasMany(Tax::class,'tax_values->tax_id','_id');
}

Таким образом, ожидается получение налоговых записей вместе с TaxGroup

Для этого нужны Json Relationships.

Ожидаемый результат

TaxGroupCollection : {
    0 : {
        id : 1,
        group_name: Standard,
        tax_values : [
            {"tax_id":1,"tax_rate":0,"tax":{here tax collection}},
            {"tax_id":2,"tax_rate":0,"tax":{here tax collection}}
        ]   
    }
}
...