Я не могу выбрать элемент из моего массива с моей переменной - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужна ваша помощь. Я пытаюсь извлечь некоторые значения из моего массива, но не могу.

Вот мой контроллер:

$initiated =  \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->get();

Вот мой взгляд:

{{$initiated['id']}} // undefined index error

И если я попробую с {{$initiated->id}}, у меня есть неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ id

А вот мой массив:

[{"id":578,"inviter_id":"545","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":606,"inviter_id":"504","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":608,"inviter_id":"548","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":613,"inviter_id":"553","target_id":"542","timestamp":"0","accepted":"1","read":"0"}]

Итак, мне нужно выбрать все идентификаторы из этого.

Ответы [ 3 ]

2 голосов
/ 26 сентября 2019

С помощью этого запроса вы извлекаете коллекцию, а коллекция является итеративным объектом, поэтому, по вашему мнению, вы должны выполнить итерацию для получения id каждой модели внутри вашей коллекции.

<!-- In your view -->

@foreach($initiated as $record)
{{ $record->id }} 
@endforeach

Если вам нужно получить только идентификатор, используйте метод pluck

$initiated = \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->pluck('id);

Я использовал обозначение объекта, поскольку коллекция заполнена Invitationобъекты.Но запись массива ($record['id']) также будет работать, поскольку каждая модель может быть приведена к массиву.

1 голос
/ 26 сентября 2019

Метод get() возвращает коллекцию вместо одной записи.Используйте метод first() вместо get() для получения желаемых результатов.

0 голосов
/ 26 сентября 2019

Попробуйте добавить оба get() и first()

 $initiated =  \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->get()->first();

Работали для меня в прошлый раз:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...