我只是尝试在我的Api中更改输出的json代码,但我无法理解其工作原理
我尝试关系2表 第一个表用户,第二个表是LogTransfer
Iam使用流明(5.7.7)(Laravel组件5.7。*)
我在关系条件下有两个表 我的第一个表 user 具有 [user_id,用户名] 和列 user_id 成为列 id_source 和的引用id_destination 在第二张表中,我想将 id_source 和 id_destination 填充/填充到我从第一张表中获得的用户名我能做到吗?
iam作为api的json返回,输出为
"id_transfer": 1,
"id_source": 3,
"id_destination": 1,
"jumlah": 1000,
"waktu": "2019-01-22 04:13:00",
"qrLog": 1,
"jenis": "Pembelian"
我希望我的输出变成这样
"id_transfer": 1,
"source": admin,
"destination": iko,
"jumlah": 1000,
"waktu": "2019-01-22 04:13:00",
"qrLog": 1,
"jenis": "Pembelian"
我的代码在用户模型中
public function logTransferFrom()
{
return $this->hasMany('App\LogTransfer','id_destination');
}
这是我的代码在控制器中
public function from(Request $request)
{
$logTransfer = Auth::user()->logTransferFrom()->get();
return response()->json(['status' => 'success','result' => $logTransfer]);
}
答案 0 :(得分:0)
由于所有映射都是通过id完成的,因此不立即支持这种功能。但是您可以通过使用accessors和appends
来实现类似的功能。在您的Log模型中添加此
public $appends = ['source', 'destination']; //dyn. appends keys to json
public function userSource() // mapping helper for source
{
return $this->belongsTo('App\User', 'id_source');
}
public function userDestination() // mapping helper for destination
{
return $this->belongsTo('App\User', 'id_destination');
}
public function getSourceAttribute($value) // gets the username for id_source
{
return $this->userSource->username;
}
public function getDestinationAttribute($value) // gets the username for id_destination
{
return $this->userDestination->username;
}
就是这样!
现在,当您转储json时,除早先的那些键外,还应该有两个键,即“ source”和“ destination”,其值作为用户表中的匹配用户名。