samedi 28 avril 2018

How to Foreach loop through Laravel collection.?

i m a beginner at laravel. using 5.5 . i have this collection return by my controller :

$products = Product::with('bazar.resellers')->take(2)->get();
dd($products);
//return view('shop.index')->with('products', $products);

which basically is three tables with nested relations. Note the relations lists in the code below. i want to access data(all columns in red colour) from every model i have in the collection i.e. Product, bazar and reseller.

Relationships are quite fine. but how to retrieve it from a collection? i dunno how foreach loops play with a collection.

Collection {#578 ▼
#items: array:2 [▼
0 => Product {#487 ▼
  #fillable: array:7 [▶]
  #connection: "mysql"
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:10 [▼
    "id" => 1
    "created_at" => "2018-04-27 12:54:41"
    "updated_at" => "2018-04-27 12:54:41"
    "imgp" => "shirt.jpg"
    "title" => "shirt1"
    "Prod_descript" => "shirt1 is a good shirt"
    "price" => 10
    "reseller_id" => 1
    "City_id" => 1
    "bazar_id" => 1
  ]
  #original: array:10 [▶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: array:1 [▼
    "bazar" => Bazar {#523 ▼
      #connection: "mysql"
      #table: null
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:7 [▼
        "id" => 1
        "Bazarname" => "Saddar"
        "Bazarlat" => null
        "Bazarlong" => null
        "created_at" => null
        "updated_at" => null
        "City_id" => 1
      ]
      #original: array:7 [▶]
      #changes: []
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: array:1 [▼
        "resellers" => Collection {#574 ▼
          #items: array:1 [▼
            0 => Reseller {#564 ▼
              #guard: "reseller"
              #fillable: array:12 [▶]
              #hidden: array:2 [▶]
              #connection: "mysql"
              #table: null
              #primaryKey: "id"
              #keyType: "int"
              +incrementing: true
              #with: []
              #withCount: []
              #perPage: 15
              +exists: true
              +wasRecentlyCreated: false
              #attributes: array:15 [▼
                "id" => 1
                "Fname" => "talha"
                "Lname" => "ali"
                "email" => "p@g.com"
                "password" => "$2y$10$M7wOmSouxSAYADN7NeFdSObT8fGwkEOFxVmOgcNSWvrixWCDtA/1S"
                "mobile_no" => "03169880008"
                "landline_no" => "0987654"
                "shop_name" => "MyTestSHop"
                "NIC_no" => "170178359437589754"
                "shop_address" => "University Town, Peshawar, Pakistan"
                "remember_token" => "wrb3nOwOWQcTuoF0P9KnaknwpOxfpTHt4gkShUmTzkR2Df9A7pPY5shBq6pQ"
                "created_at" => "2018-04-27 12:42:25"
                "updated_at" => "2018-04-27 12:42:25"
                "City_id" => 1
                "bazar_id" => 1
              ]
              #original: array:15 [▶]
              #changes: []
              #casts: []
              #dates: []
              #dateFormat: null
              #appends: []
              #dispatchesEvents: []
              #observables: []
              #relations: []
              #touches: []
              +timestamps: true
              #visible: []
              #guarded: array:1 [▶]
              #rememberTokenName: "remember_token"
            }
          ]
        }
      ]
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [▶]
    }
  ]
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #guarded: array:1 [▼
    0 => "*"
  ]
}
1 => Product {#488 ▶}
]
}

the code i have tried is not working!

@foreach($products as $product)
<h1></h1>

@foreach($product->bazar as $bazar)
    <h3></h3>

    @foreach($bazar->resellers as $reseller)
        <p></p>
    @endforeach

@endforeach

@endforeach



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire