user4655002
user4655002

Reputation:

Displaying categories inside blade files

I have rows stored in the database like so:

Schema::create('markets', function (Blueprint $table) {
    $table->increments('id');
    $table->string('fiat');
    $table->string('coin');
});

with rows like so:

id | fiat | coin
1    usd    btc
2    usd    ltc
3    usd    mon
4    gbp    btc
5    gbp    ltc
6    gbp    mon
7    eur    btc
8    eur    ltc
9    eur    mon

I am trying to display them as categories like so:

<ul>
    <li class="header">usd</li>
    <li class="sub">btc</li>
    <li class="sub">ltc</li>
    <li class="sub">mon</li>

    <li class="header">gbp</li>
    <li class="sub">btc</li>
    <li class="sub">ltc</li>
    <li class="sub">mon</li>

    <li class="header">eur</li>
    <li class="sub">btc</li>
    <li class="sub">ltc</li>
    <li class="sub">mon</li>
</ul>

How can I do this inside the blade file?

Upvotes: 0

Views: 62

Answers (2)

AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Reputation: 21681

You can try like this:

$getMarkets = DB::table('markets')
                 ->select('fiat', DB::raw('GROUP_CONCAT(coin) as coins'))
                 ->groupBy('fiat')
                 ->get();

Updated Answer

<ul>
    @foreach($getMarkets as $market)
      <li class="header">$market->fiat</li>
      @foreach($market->coins as $coin)
        <li class="sub">$coin</li>
      @endforeach  
   @endforeach
</ul>

Now makes loop into your view and extend the "coins" column to display as per your requirement.

Upvotes: 0

user7762065
user7762065

Reputation: 47

You can try something like this below inside blade:

<ul>
    @foreach($markets as $market)
      <li class="header">$market->fiat</li>
      @foreach($market->coins as $coin)
        <li class="sub">$coin</li>
      @endforeach  
    @endforeach
</ul>

Hope this helps!.

Upvotes: 1

Related Questions