Laravelリポジトリ内の定義アクセサーを熱心にロードできるかどうかを知りたかっただけです。私は現在、このl5-repositoryパッケージとLaravel 5.4を使用しています。私UserInfo.php
モデルでLaravelリポジトリeagle load定義済みアクセッサー
、私は、私はこのように私のコントローラでアクセサ熱心な負荷にしようとしています。この機能に
public function getFullNameAttribute()
{
return ucfirst($this->first_name . " ". $this->last_name);
}
を持っています。
$user_infos = $this->repository->with('full_name')->all();
// or $user_infos = $this->repository->with('getFullNameAttribute')->all();
return response()->json([ 'data' => $user_infos ]);
私はそれが動作しないことを知っています。私はちょうど私のアクセサリーを追加する同様の方法を探していますfull_name
私のコレクションに。だから私はフロントエンドで連結する必要はありません。だから私の予想結果は、あなたのモデルに
{
id : 1,
first_name : "Sample fname",
last_name : "Sample lname",
.....
.....
full_name : "Sample fname Sample lname",
}
あなたの状況によって、熱心な読み込みのロジックが異なります。リレーションシップに使用されます。この例では、リレーションシップを使用する意味がありません。 – MisaGH
また、アクセサであなたのコレクションで利用可能になり、あなたはそれを使用することができます。しかし、別のコレクションを作成したい場合は、これをループして手動で挿入することができます。 – MisaGH
問題は、コントローラ上でそのコレクションをループするときだけ 'full_name'を得ることができるということです。フロントエンド(JS)でアクセスできません。 Theres私の質問の更新私は 'return response() - > json(['data' => $ user_infos]); 'を追加しました –