Comment définir un tableau à l'intérieur du tableau dans le fichier list.blade dans laravel?

2020-08-01 php laravel laravel-blade

Je reçois ci-dessous la réponse du fichier du contrôleur

{
    "s": "1",
    "m": "orders",
    "d": [
        {
            "ordid": "1",
            "u_id": "49",
            "products": {
                "id": "115",
                "amount": "500",
                "prod_id": "107"
            },
            {
                "id": "116",
                "amount": "1000",
                "prod_id": "109"
            }
            "total_mrp": 1068,
            "total_discount": 112
        }
    ]
}

J'ai besoin d'afficher des données comme ci-dessous en utilisant le tableau HTML dans mon fichier list.blade.

entrez la description de l'image ici

J'utilise le code ci-dessous dans mon fichier list.blade mais cela ne fonctionne pas et je suis un peu nouveau pour laravel. Alors, s'il vous plaît, quelqu'un peut-il m'aider? Quel est le problème avec mon code?

@foreach($orders as $order) 
  ....  
    <tr>
      <td>
        @foreach($order->products as $prod) 
          <tr></tr>
        @endforeach
      </td>
    <tr>
  ....
@endforeach

Actualisé

ci-dessous est mon code de contrôleur

function list(Request $request) {            

    $orders = DB::table('orders')
        ->paginate(10);

    foreach($orders as $order) {

        $data = DB::table('store_orders')
            ->where('order_cart_id', $order->cart_id)
            ->get();

        foreach ($data as $d) {
            
            $data1 = DB::table('pv_attributes')
            ->leftjoin('product', 'product.product_id', '=', 'pv_attributes.product_id')
            ->where('id', $d->va_id)
            ->first();

            $order->products = $data1;

        }
    }

    return view('admin.account_section.list', compact('title', "admin", "logo", "orders"));
}

Answers

Je pense que vous avez écrit order au singulier pluriel au lieu de orders . Cela devrait résoudre le problème de dénomination et tant que vos $orders sont une seule instance de modèle et non une collection, le code devrait fonctionner correctement.

Si vous avez passé $orders tant que collection de Order vous devrez itérer la collection.

@foreach($orders as $order) 
  @foreach($order->products as $product)
     //your code
  @endforeach
@endforeach

Si vous ne souhaitez passer qu'une seule Order vous devrez peut-être modifier la logique de votre contrôleur. (En fonction de votre question, cela pourrait être le cas)

entrez la description de l'image ici

si sous la forme d'un tableau, alors voici comment vous pouvez accéder aux données, je pense qu'il y a beaucoup plus de belles façons, jeté à la hâte dans ce code, j'espère que cela vous aidera Désolé pour l'image, impossible d'insérer le code

Related