использование массива объектов в таблице в laravel

#php #html #arrays #laravel #html-table

#php #HTML #массивы #laravel #html-таблица

Вопрос:

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

 $services = Service::findOrFail($id);
    $service = $services->order['orders'];
  

но когда я отправляю $ service для просмотра, я не знаю, как использовать set их в таблице с помощью foreach.

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

     public function watch($id){
        $services = Service::findOrFail($id);
        $service = $services->order['orders'];

       return view('service.watch',['service'=> $service]);
}
  

обычно это легко, когда я получаю все документы из коллекции и отправляю их для просмотра, и оба они одинаковы по структуре, но это работает не так.

это когда я var_dump $service :

  array(2) {
  [0]=>
  array(9) {
    ["_id"]=>
    object(MongoDBBSONObjectId)#1221 (1) {
      ["oid"]=>
      string(24) "5f42734c00c6ed74e48624e5"
    }
    ["stat"]=>
    string(5) "false"
    ["customerPhone"]=>
    string(1) "5"
    ["orderQuantity"]=>
    string(1) "5"
    ["orderCost"]=>
    string(1) "5"
    ["orderId"]=>
    float(139907061720)
    ["orderTag"]=>
    string(1) "2"
    }
  [1]=>
  array(9) {
    ["_id"]=>
    object(MongoDBBSONObjectId)#1222 (1) {
      ["oid"]=>
      string(24) "5f42734c00c6ed74e48624e6"
    }
    ["stat"]=>
    string(5) "false"
    ["customerPhone"]=>
    string(1) "9"
    ["orderQuantity"]=>
    string(1) "9"
    ["orderCost"]=>
    string(1) "9"
    ["orderId"]=>
    float(139907061725)
    ["orderTag"]=>
    string(1) "9"
             }
   }
  

на мой взгляд, я сделал это :

 @foreach($service as $key=>$value)
   <td>{{ $value->customerPhone }}</td>
   <td>{{ $value->orderQuantity }}</td>
   <td>{{ $value->orderCost}}</td>
   <td>{{ $value->orderTag}}</td>
   @endforeach
  

пожалуйста, помогите мне закодировать это. Спасибо

Комментарии:

1. используйте индекс массива, подобный $value['customerPhone'] .

2. @zahidhasanemon благодарит, что это сработало. но не могли бы вы, пожалуйста, объяснить мне, почему $ value-> customerPhone не работает?

Ответ №1:

Как вы можете видеть в вашем результате var_dump, ваш результирующий тип данных — array, а не object. Таким образом, вы должны получить доступ по индексу $value[‘customerPhone’]

Комментарии:

1. да, спасибо, это сработало, но у меня есть вопрос по этому поводу. когда мы получаем весь документ из коллекции, это то же самое. не так ли?