Laravel Eloquent: ownToMany возвращает массив строк вместо массива объектовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Eloquent: ownToMany возвращает массив строк вместо массива объектов

Сообщение Anonymous »

У меня есть две таблицы, соединенные сводной таблицей.
показывает:

Код: Выделить всё

+----+--------+
| id | show   |
+----+--------+
|  1 | show1  |
|  2 | show2  |
|  3 | show3  |
+----+--------+
draft_types:

Код: Выделить всё

+----+--------+
| id | type   |
+----+--------+
|  1 | type1  |
|  2 | type2  |
|  3 | type3  |
+----+--------+
show_draft_types:

Код: Выделить всё

+---------+---------------+
| show_id | draft_type_id |
+---------+---------------+
|  1      | 1             |
|  1      | 2             |
|  1      | 3             |
+---------+---------------+
По сути, у шоу есть много разных типов черновиков, и вот отношения, которые я использую в eloquent для шоу:

Код: Выделить всё

public function draft_types()
{
return $this->belongsToMany('App\Models\DraftTypes', 'show_draft_types', 'show_id', 'draft_type_id');
}
Проблема в том, что всякий раз, когда я это делаю:

Код: Выделить всё

Shows::where('id', 1)->with(['draft_types'])->first()
Я понял это:

Код: Выделить всё

{
id: 1,
show: "show1",
draft_types: [
{
id: 1,
type: "type1"
},
{
id: 2,
type: "type2"
},
{
id: 3,
type: "type3"
}
]
}
Я хочу получить следующее:

Код: Выделить всё

{
id: 1,
show: "show1",
draft_types: [
"type1",
"type2",
"type3"
]
}
Есть ли способ сделать это с помощью красноречивых отношений?


Подробнее здесь: https://stackoverflow.com/questions/785 ... of-array-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»