Reputation:
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
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
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