У меня есть таблица с именем Payments
и другая таблица с именем Students
с полем name
.
В моей плате контроллера я хочу получить имена студентов.
У меня есть это:
public function index(Request $request)
{
$user = $request->user();
$payments = Payment::query()
->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
$query->where('email', $user->email);
})
->when($request->has('search'), function (Builder $query) use ($request) {
$query->where('name', 'like', '%' . $request->input('search') . '%');
})
->paginate(5);
return view('admin.payments.index', compact('payments'))
->with('display_search', $user->hasRole('admin'));
}
Как мне присоединиться к таблице учеников?
payment::whereHas('students'
Я не знаю, где я должен поставить эту строку
Редактировать:
Когда я добавляю платеж, у меня всегда появляется один и тот же студент, который появляется ???
![enter image description here](https://i.stack.imgur.com/IaLaw.png)
Я думаю, что проблема здесь ??По моей просьбе ???
$query->where('name', 'like', '%' . $request->input('search') . '%');
})->with('students:id,name') // Here
->paginate(5);
Указательное лезвие
<th>Date payment</th>
<th>Number seance</th>
<th>Price</th>
<th>Total</th>
<th>Name</th>
</tr>
</thead>
@foreach($payments as $payment)
<tr>
<td> {{$payment->date_payment->format('d/m/Y') }}</td>
<td> {{$payment->number_seance}}</td>
<td> {{$payment->price}}</td>
<td> {{$payment->total}}</td>
<td> {{$payment->students->first()->name}}</td>
<td>
Спасибо за помощь.