У меня есть таблица COIN с полями id и name, у меня также есть таблица EVENT с полями id, title, description.В моем проекте у монеты может быть много событий, а у события может быть много связанных монет, поэтому я создал промежуточную таблицу под названием coin_event.Вопрос в том, как сделать панель поиска, чтобы при выборе в Select2 нужных мне монет я возвращал все события, связанные с выбранными монетами?
У меня есть только драйвер PageController, который будет иметьспособ делать то, что мне нужно, но пока я в подгузниках и не знаю с чего начать.
Я занимаю laravel 5.6
Модель события
public function coins()
{
return $this->belongsToMany(Coin::class);
}
Миграция монет:
public function up()
{
Schema::create('coin_event', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('coin_id');
$table->unsignedInteger('event_id');
$table->timestamps();
});
}
Модель монеты
public function events()
{
return $this->belongsToMany(Event::class);
}
PageController
public function search(Request $request){
$coins = Coin::findMany($request->coinSearch)->load('events')
->orderBy('event_at', 'DESC')
->where('status', 'APROBADO')
->paginate(8);
$events = $coins->pluck('events')->collapse();
return view('welcome', compact('events', 'coins'));
}
Приветствие
<form name="form" method="get" class="form"
role="form" action="{{ route('search') }}">
{{csrf_field()}}
<div class="form-group">
<select class="select2 select-coin col-12 form-control"
id="coinSearch"
name="coinSearch[]"
multiple="multiple"
style="width: 260px;"
required>
@foreach ($coins as $coin)
<option value="{{ $coin->id }}">{{ $coin->coin_name }}
</option>
@endforeach
</select>
<button class="btn btn-rounded btn-info">Buscar</button>
</div>
</form>
<div class="row">
@foreach ($events as $event )
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
<div class="card text-center">
<div class="card-header">
<h5><strong>{{ \Carbon\Carbon::parse($event->event_at)->toFormattedDateString() }}</strong>
<a class="reminder" href="#alertReminder" data-toggle="modal" data-target="#alertReminder" data-idevent="13002" data-date="23 May 2018" data-coin="SunContract (SNC)" data-title="Strategic Partnership"><i class="far fa-clock"></i></a>
</h5>
@foreach ($event->coins as $coin)
<h5 style="display: inline;"><strong><span>{{$coin->coin_name}} ({{$coin->coin_symbol}})</span></strong></h5>
@endforeach
<h6>{{$event->title}}</h6>
</div>
<div class="card-body">
<h5 class="card-title"><small>(Publicado: {{ \Carbon\Carbon::parse($event->created_at)->toFormattedDateString() }})</small></h5>
<p class="card-text" >{{$event->description}}</p>
<a class="btn btn-xs btn-outline-primary waves-effect waves-light proof_modal"
href="{{asset($event->proof)}}">
<span class="btn-label"><i class="fa fa-file-photo-o"></i></span> Prueba
</a>
<a class="btn btn-xs btn-outline-primary waves-effect waves-light" target="_blank"
href="{{$event->source}}">
<span class="btn-label"><i class="fa fa-external-link-square"></i></span> Fuente
</a>
</div>
<div class="card-footer">
<h6 class="text-footer-card"><small>Publicado por: {{$event->twitter_account}}</small></h6>
@if(empty($event->wallet_address))
<h6 class="text-footer-card"><small>ETH: 0x6e4Cf4b17086cD4Aae40Dbe9cB998d8460F0FbC6</small></h6>
@else
<h6 class="text-footer-card"><small>{{$event->wallet_type}}: {{$event->wallet_address}}</small></h6>
@endif
</div>
</div>
<br>
</div>
@endforeach
</div>
<div class="text-center">
{{ $events->links() }}
</div>
Пример
Приветствие