Получить результат коллекции из строки, расположенной в массиве - PullRequest
0 голосов
/ 23 октября 2019

Чтобы избежать множественных строк в моей форме, я пытаюсь получить результат коллекции с ключом, расположенным в raay, но он не работает. Это возможно ? Как?

$days = [
'lundi' => (object)[
    'status' => 'lundiStatus',
    'open' => 'lundiOpen',
    'close' => 'lundiClose'
],
'mardi' => (object)[
    'status' => 'mardiStatus',
    'open' => 'mardiOpen',
    'close' => 'mardiClose'
];

@foreach($days as $day => $data)
   <?php dd($collection->$data->status); ?>
@endforeach

Я получаю ошибку 500: объект класса stdClass не может быть преобразован в строку ...

Есть идеи?

1 Ответ

0 голосов
/ 23 октября 2019

Если $collection является array или Collection как:

$collection = [
    "lundiStatus" => "foo",
    "mardiStatus" => "foo"
];

или

$collection = new Collection([
    "lundiStatus" => "foo",
    "mardiStatus" => "foo"
]);

, вы можете получить доступ таким образом:

@foreach($days as $day => $data)
   <?php dd($collection[$data->status]); ?>
@endforeach

Но если $collection является object, например:

$collection = (object) array(
    "lundiStatus" => "foo",
    "mardiStatus" => "foo"
);

, вы можете получить доступ таким образом:

@foreach($days as $day => $data)
   <?php dd($collection->{$data->status}); ?>
@endforeach

См. фигурные скобки для доступа к значению свойства объекта в выражении.

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