php - Laravel relations where the relation brings the correct users data -
so tried setting of inhouse sports page forum users can enter think win game , after result has come in awarded points if correct.
while doing ran issue. far have games in database , created results relation. problem when user viewing games on said date (several events) relation doesn't know 1 belongs said user. tried couple of hours drawing blank. take @ this:
route:
route::get('/event/{date}/list', 'other\othercontroller@indexdategames'); controller:
public function indexdategames($date) { $datetoday = (new \datetime())->format('y-m-d h:i:s'); $events = event::where('date', $date)->get(); $uid = auth::user()->id; $vars['uid'] = $uid; $vars['date'] = $date; $vars['datetoday'] = $datetoday; $vars['events'] = $events; if ($date >= $datetoday) { $vars['url'] = 'eventsupcoming'; } else { $vars['url'] = 'eventspassed'; } return view('other.event_on_date', $vars); } model result :
public function event() { return $this->belongsto(event::class); } model event :
public function result() { return $this->hasone(result::class); } view:
<div class="row"> <div class="col-lg-6"> <div id="spinner" style="margin-top:200px;margin-left:47%;"> <i class="fa fa-spinner fa-spin fa-5x fa-fw"></i> </div> <div id="data" style="display:none;margin:10px;"> <table id="example" class="display" cellspacing="0" width="100%"> <thead> <tr> <th>tid</th> <th>resultat</th> <th>ditt val</th> </tr> </thead> <tfoot> <tr> <th>tid</th> <th>resultat</th> <th>ditt val</th> </tr> </tfoot> <tbody> @foreach($events $event) @if ('2017-09-16 16:00:00' < $event->start) <tr> <td>{{$event->start->format('h:i')}}</td> <td> @if (isset($event->result->result)) @if ($event->result->result == 1) <a href="#" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->home}}</a> <a href="{{ url::to('/event/' . $event->id . '/changeresult/2/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">x</a> <a href="{{ url::to('/event/' . $event->id . '/changeresult/3/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->away}}</a> @elseif ($event->result->result == 2) <a href="{{ url::to('/event/' . $event->id . '/changeresult/1/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->home}}</a> <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">x</a> <a href="{{ url::to('/event/' . $event->id . '/changeresult/3/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->away}}</a> @elseif ($event->result->result == 3) <a href="{{ url::to('/event/' . $event->id . '/changeresult/1/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->home}}</a> <a href="{{ url::to('/event/' . $event->id . '/changeresult/2/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">x</a> <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->away}}</a> @endif @else <a href="{{ url::to('/event/' . $event->id . '/result/1/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->home}}</a> <a href="{{ url::to('/event/' . $event->id . '/result/2/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">x</a> <a href="{{ url::to('/event/' . $event->id . '/result/3/' . $uid) }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">{{$event->away}}</a> @endif </td> @elseif (isset($event->final_result)) <tr> <td>{{$event->start->format('h:i')}}</td> <td> @if ($event->final_result == 1) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->home}} vann matchen över {{$event->away}}</a> @elseif ($event->final_result == 2) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">matchen slutade lika mellan {{$event->home}} och {{$event->away}}</a> @elseif ($event->final_result == 3) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->away}} vann matchen över {{$event->home}}</a> @endif </td> @else <tr> <td>{{$event->start->format('h:i')}}</td> <td> <a href="{{ url::to('#') }}" class="btn btn-danger btn-xs" role="button" aria-pressed="true">matchen låst - resultat ej fastställt</a> </td> @endif @if (isset($event->result->result)) <td> @if ($event->result->result == 1) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->home}}</a> @elseif ($event->result->result == 2) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">lika</a> @elseif ($event->result->result == 3) <a href="{{ url::to('#') }}" class="btn btn-success btn-xs" role="button" aria-pressed="true">{{$event->away}}</a> @endif </td> </tr> @else <td> <a href="{{ url::to('#' . $event->id . '/result/1') }}" class="btn btn-default btn-xs" role="button" aria-pressed="true">inget val gjort</a> </td> </tr> @endif @endforeach </tbody> </table> </div> </div> </div> does know how make relation knows "$event->result" result? know doesnt work, example:
$event->result(whereuserid($uid)->result
in case event should have many results
public function results() { return $this->hasmany(result::class); } for query :
$events = event::with(['results' => function ($query) { $query->where('user_id', '=', auth::user()->id); }]) ->where('date', $date) ->get();
Comments
Post a Comment