나는 정말 명백한 것을 놓쳤을 지 모르지만 지금까지는 운이 없었습니다. 두 가지 관련 모델 인 메시지 및 사용자가 있습니다. 모든 메시지를 검색 할 때 메시지를 만든 사용자의 '사용자 이름'만 추가하려고합니다. 그러나 완전히 직렬화 된 관련 사용자 모델을 얻고 있습니다. 내 사용자 모델에서 $ 숨길 수 있지만 이해하고 싶습니다. 내 메시지 모델에서Laravel 5.4 접근 자 관계가있는 관련 모델을 반환합니다
, 나는 관계
public function createdBy()
{
return $this->belongsTo('App\User', 'created_by');
}
다음
나는 정의와 함께
protected $appends = ['username'];
을 추가 한을 만든 속성
public function getUsernameAttribute($value)
{
$username = null;
if ($this->createdBy){
$username = $this->createdBy->username;
}
return $username;
}
난
와 같은 다른 관계를 통해 메시지를받습니다.return $channel->messages()->orderBy('id','desc')->get();
I는 다음과 같은 반응으로 끝낼 :
[{ "ID가"97 "to_id": "12345", "메시지", "created_at" "이 메시지 내용 인" : "created_by": { "id": 1, "email": "REDACTED", "name": "REDACTED", "username": "myusername" created_at ":"2016-09-26 16:00:00 ","created_by ": null,"updated_at ":"2017-02-20 00:33:06 ","updated_by ": null},"updated_at ": "017-02-25 08:58:22", "updated_by": null, "deleted_at": null, "username": "myusername"}, ...
내가 뭘 잘못하고 있는거야? 노력하고있는 것을 성취 할 수있는 더 좋은 방법이 있습니까? 그래?