I have three tables; Income, Expenses and IncomeExpenses. IncomeExpenses contains foreign keys of both Income and Expenses.
class IncomeExpenses extends Model
{
public function income(){
return $this->belongsTo(Income::class);
}
public function expense(){
return $this->belongsTo(Expenses::class);
}
}
Also, IncomeId and ExpensesId are used in view and I use dropdownlists for them and what I want to achieve is that after I add new record with those dropdownlists I want to show title of IncomeId or ExpensesId instead of id. Yes I know it is better to use eager loading but I do not know how to achieve it. Controller:
public function show($id)
{
$incexp = IncomeExpenses::find($id);
$income=IncomeExpenses::with('income')->get();
return view('incomeExpense.show', compact('incexp','income'));
}
Income model:
class Income extends Model
{
//
}
Expenses model
class Expenses extends Model
{
//
}
View:
<div class="card bg-muted">
<h1>{{$incexp->IncomeExpense}}</h1>
<small>Added at {{$incexp->created_at}}</small>
<small> Type of Income:{{$income->income->title}}</small>
<small> Money:{{$incexp->SumOfMoney}}</small>
<small> Comments:{{$incexp->Comments}}</small>
<small> Type of Expenses:{{$incexp->ExpenseId}}</small>
</div>