В качестве заголовка я пытаюсь получить имя данных, используя полиморфную связь.
Когда я получаю один объект, его работа отлично.но когда результат несколько объектов, это не так.
здесь моя попытка.
>>> $page = App\PageAtribut::first()
=> App\PageAtribut {#2863
id: 1,
page_id: 1,
watchable_id: 1,
watchable_type: "App\Category",
created_at: "2018-09-11 11:03:20",
updated_at: "2018-09-11 11:03:20",
}
>>> $page->watchable
=> App\Category {#2857
id: 1,
name: "Series",
created_at: "2018-09-11 11:01:46",
updated_at: "2018-09-11 11:01:46",
}
по коду выше его работы.так как я использую 'id' для получения данных.
далее, я пытаюсь получить все данные, используя условие page_id
равное page id
.
>>> $page = App\PageAtribut::where('page_id', 1)->get()
=> Illuminate\Database\Eloquent\Collection {#2859
all: [
App\PageAtribut {#2860
id: 1,
page_id: 1,
watchable_id: 1,
watchable_type: "App\Category",
created_at: "2018-09-11 11:03:20",
updated_at: "2018-09-11 11:03:20",
},
App\PageAtribut {#2861
id: 2,
page_id: 1,
watchable_id: 2,
watchable_type: "App\User",
created_at: "2018-09-11 11:03:40",
updated_at: "2018-09-11 11:03:40",
},
],
}
>>> $page->watchable
Exception with message 'Property [watchable] does not exist on this collection instance.'
и здесьрезультат.
Exception with message 'Property [watchable] does not exist on this collection instance.'
как получить имя, если существует более одного объекта, как указано выше? ...