私はお互いの関係を持つEloquentモデルをいくつか持っていますが、関連データが存在する場合にのみこれらの関係を設定します。例えばLaravel Eloquent:関連データが存在する場合にのみ関係を設定してください。
:
-
課(モデル) - > hasManyの - >ワーカー(モデル)(関係が がそうでなければ設定されていない、部門が労働者を関連している場合にのみ設定する必要があります)
可能でしょうか?私はこれを試してみましたが、horrably失敗しました:(部門モデルで)
public function worker() {
$model = new Department();
if(isset($model->relations)) {
return $this->hasMany(Worker::class, 'wrk_department_id');
}
}
// EDIT:
{
"data": {
"type": "department",
"id": "8",
"attributes": {
"accessory": [],
"department": "Marketing",
"department_id": 8,
"dept_floor_id": 2,
"inventory": [],
"software": [],
"worker": []
},
"links": {
"self": {
"href": "http://127.0.0.1:8000/api/v2/department/8"
}
}
},
"links": {
"self": {
"href": "http://127.0.0.1:8000/api/v2/department/8"
}
},
"jsonapi": {
"version": "1.0"
}
}
:
を部門が私の出力は以下のようである何人の労働者を持っていない場合部門には労働者がいますが、期待どおりのものは何でもできます:
{
"data": {
"type": "department",
"id": "1",
"attributes": {
"department": "Entwicklung",
"department_id": 1,
"dept_floor_id": 3
},
"links": {
"self": {
"href": "http://127.0.0.1:8000/api/v2/department/1"
}
},
"relationships": {
"worker": {
"data": [
{
"type": "worker",
"id": "5"
},
{
"type": "worker",
"id": "8"
},
{
"type": "worker",
"id": "11"
},
{
"type": "worker",
"id": "13"
}, //and so on
空の配列を削除しようとしています(例:「worker」:[])。関連するデータがない場合に表示されます
達成しようとしていることは何ですか?それに従事する労働者や他の何人かの部署だけを取得しますか? –
投稿を編集しました –
出力は、使用するクエリによって制御されます。あなたの 'model'で定義するものではありません。 – Gayan