@GaserV

Как в ларавэл вернуть массив айдишек?

Подскажите пожалуйста. Как я в модели могу вернуть массив айдишек? У меня есть модель Ticket. В ней есть связь к сообщениям:
public function messages()
  {
    return $this->hasMany('App\Message');
  }


Для API я добавил метод messagesIds который должен будет вернуть массив айдишек.. Как мне это сделать? Слышал, что ORM должен возвращать объект, но мне нужен именно массив.
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 4
DJZT
@DJZT
Laravel - code for you
$message->tikets->lists('id')->toArray()

Вроде так было, насколько я помню
Ответ написан
Комментировать
zvermafia
@zvermafia
WebDev
Попробуйте так:
$ticket->messages->pluck('id')->toArray();

public function messagesIds()
{
    $this->messages->pluck('id')->toArray();
}
Ответ написан
Комментировать
chelkaz
@chelkaz
Нужно при вызове модели указать метод with("messages")
Ticket::with('messages')->get()
Но счет массива:
В самой модели можно указать:
protected $casts = [
        'options' => 'array',
    ];

Подробно https://laravel.com/docs/5.4/eloquent-mutators#arr...
Ответ написан
@hopeful_romantic
return $this->hasMany('App\Message')->select(['id', 'message_id']);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы