#html #database #laravel #web #eloquent
#HTML #База данных #laravel #веб #красноречивый
Вопрос:
Итак, я создаю веб-сайт выборов, у меня есть таблица, в которой указано количество голосов кандидатов из каждого раздела, моя проблема в том, что я получаю более одного столбца с тем же именем кандидата, мне нужно объединить все столбцы с тем же заголовком в 1 столбец, и голоса будут ниже каждогодругое. Изображение таблицы:
Код таблицы {index.blade.php }:
<table class="table table-sm table-hover table-dark text-center">
<thead class="text-center" style="font-weight:bolder;color:green">
<tr>
<td style="padding: 20px;">اضافه مرشح</td>
<td style="padding: 20px;">اسم مرشح</td>
<td style="padding: 20px;">Action</td>
<?php
$counter = AppModelsMorshah::select('name')->where('dayra','=>','5')->groupBy('name')->get()->count();
?>
@foreach($morshah as $morshahs)
<td style="padding: 20px;">{{$morshahs->name}}</td>
@endforeach
<td style="padding: 20px;">الباطل</td>
<td style="padding: 20px;">الصحيح</td>
<td style="padding: 20px;">الحضور</td>
<td style="padding: 20px;">الدائره</td>
<td style="padding: 20px;">اللجنه</td>
</tr>
</thead>
<tbody>
<?php $morshaheen = AppModelsMorshah::where('dayra','=','5')->get(); //dd($morshaheen); ?>
@if(count($data)>0)
<tbody class="">
@foreach($data as $datas)
<tr>
{!! Form::open(['action' => ['AfterDaysController@addMorshah',$datas->id],'method' => 'POST','style'=>'box-shadow:3px 3px 15px;']) !!}
<div class="form-group">
{{-- {{Form::hidden('_method','PUT')}} --}}
<td>{{Form::submit('اضافه مرشح',['class' => 'btn-lg btn-warning'])}}</td>
<td> {{Form::text('name','',['class' => 'form-control'])}}
{{Form::hidden('dayra',$datas->dayra,['class' => 'form-control '])}}
{{Form::hidden('lagna',$datas->lagna,['class' => 'form-control '])}}
</td>
{{ Form::close() }}
{!! Form::open(['action' => ['AfterDaysController@update',$datas->id],'method' => 'POST','style'=>'box-shadow:3px 3px 15px;']) !!}
<div class="form-group">
{{Form::hidden('_method','PUT')}}
<td>{{Form::submit('تعديل',['class' => 'btn-lg btn-warning'])}}</td>
@foreach($morshah as $morshahs)
@if($morshahs->dayra == $datas->dayra amp;amp; $morshahs->lagna == $datas->lagna)
<td>{{Form::text('votes',$morshahs->votes,['class' => 'form-control'])}}</td>
@else
<td>{{Form::text('votes','',['class' => 'form-control'])}}</td>
@endif
@endforeach
<td>{{Form::text('wrong',$datas->wrong,['class' => 'form-control'])}}</td>
<td>{{Form::text('right',$datas->right,['class' => 'form-control'])}}</td>
<td>{{Form::text('attend',$datas->attend,['class' => 'form-control'])}}</td>
</div>
{{ Form::close() }}
<?php
if($datas->dayra == '5'){
$dayra = "اول المنتزه";
}else if($datas->dayra == '7'){
$dayra = "ثان المنتزة";
}else if($datas->dayra == '8'){
$dayra = "ثالث المنتزة";
}else if($datas->dayra == '9'){
$dayra = "اول الرمل";
}else if($datas->dayra == '10'){
$dayra = "ثان الرمل";
}else if($datas->dayra == '11'){
$dayra = "سيدى جابر";
}else if($datas->dayra == '12'){
$dayra = "باب شرقى";
}else if($datas->dayra == '13'){
$dayra = "محرم بك";
}else if($datas->dayra == '15'){
$dayra = "العطارين";
}else if($datas->dayra == '16'){
$dayra = "المنشية";
}else if($datas->dayra == '17'){
$dayra = "الجمرك";
}else if($datas->dayra == '19'){
$dayra = "كرموز";
}else if($datas->dayra == '20'){
$dayra = "اللبان";
}else if($datas->dayra == '21'){
$dayra = "مينا البصل";
}else if($datas->dayra == '22'){
$dayra = "الدخيلة";
}else if($datas->dayra == '23'){
$dayra = "اول العامرية";
}else if($datas->dayra == '24'){
$dayra = "ثان العامرية";
}else if($datas->dayra == '26'){
$dayra = "برج العرب";
}
?>
<td style=""><?php echo $dayra; ?></td>
<td>{{$datas->lagna}} لجنه</td>
</tr>
@endforeach
</tbody>
@endif
</tbody>
</table>
общедоступная функция index_montaza1()
{
$datas = AfterDay::orderBy('id','asc')->where(['dayra'=>'5'])->get();
$morshah = Morshah::orderBy('id','asc')->where(['dayra'=>'5'])->get();
return view('after_montaza1.index')->with('data',$datas)->with(compact('morshah'));
}
Комментарии:
1. Добро пожаловать в SO, мы на самом деле не понимаем, что здесь заголовок, причина не английского языка. В любом случае, вы не можете объединить несколько строк в одну, но вы можете игнорировать повторяющуюся строку в своем цикле
2. @sta Три заголовка со стрелками из 3 столбцов являются именами тестирования (если быть точным, с тем же именем), я хочу, чтобы 3 столбца были объединены в 1 столбец, а цифры ниже (голоса) были все ниже друг друга
3. Группируйте по вашему запросу, он будет легко объединять ваши данные при создании коллекции
$datas = AfterDay::orderBy('id','asc')->where(['dayra'=>'5'])->groupBy('name')->get();
Ответ №1:
Вы не можете объединить, как хотите, но вы можете игнорировать повторяющиеся данные с помощью array_unique()
:
foreach (array_unique($data) as $datas) {
// Do stuff with $d ...
}