Home > OS >  How to get ID of the first table in a join table
How to get ID of the first table in a join table

Time:09-13

I am able to get the id of the table books using the code below but how should I get the id of my fist table which is named reservation.

$data=reservation::where('user_id',$id)
                ->join('books','reservations.books_id','=', 'books.id')
                ->get();

This is how I display the value of both table. I am able to get and display data from both table.

@foreach($data as $data)
<tr>
    <td align="center">{{$data->borrowed_books}}</td>
    <td align="center">{{$data->price}}</td>
    <td align="center">{{$data->reserved_qty}}</td>
    <td align="center">{{$data->books_fee}}</td>
    <td><a href="{{url('/deletemenu',$data->id)}}">CANCEL</a></td>
</tr>
@endforeach

The problem is, every time I click cancel to delete it from database the id that it gets is from the books table but I want the id of reservation table. What should I do to delete the id of reservation table instead of books table.

public function deletemenu($id)
{
    $data=reservation::find($id); //it used to be $data=books::find($id);
    $data->delete();
    return redirect()->back();

}

CodePudding user response:

   $data=reservation::where('user_id',$id)
            ->join('books','reservations.books_id','=', 'books.id')
            ->select('reservations.*', 'books.*')
            ->get();

if you have any columns that have the same name then in your select specify the column as so lets say both tables have column ID

  $data=reservation::where('user_id',$id)
            ->join('books','reservations.books_id','=', 'books.id')
            ->select('reservations.*', 'books.id as book_id')
            ->get();
  • Related