отношения laravel не показывают значение внешнего ключа - PullRequest
1 голос
/ 15 марта 2019

Я создал связь между двумя таблицами, но при вызове в ней отображается id вместо внешнего ключа

Модель моего устройства:

class Unit extends Model
{
   protected $table='units';
   public function unit_id()
   {
       return $this->hasMany(Procurment_request::class,'unit_id','id');
   }
}

Модель моего производства:

class Procurment_request extends Model
{
    protected $table ='procurment_requests';
    public function unit_id(){
        return $this->belongsTo(App\Unit::class);
    }
}

Мой маршрут:

Route::get('show',function (){
    $result=Procurment_request::all();
    return $result;
});

И результат:

[  
   {  
      "id":1,
      "quantity":1,
      ***"units_id":1***,
      "description":"adf",
      "requster":0,
      "checker":0,
      "approver":0,
      "created_at":null,
      "updated_at":null
   }
]

Я хочу показать имя устройства, а не первичный ключ

1 Ответ

1 голос
/ 15 марта 2019

Изменить имя отношения на

class Procurment_request extends Model
{
    protected $table ='procurment_requests';

    public function unit(){
        return $this->belongsTo(App\Unit::class, 'units_id');
    }

}

И используйте

Route::get('show',function (){
    $result=Procurment_request::with('unit')->get();
    $result->map(function ($item) {
        $item->unit_name = $item->unit->unit_name;
        unset($item['unit']);
    });
    return $result;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...