Search code examples
phpmysqllaravellaravel-5.3

How to inner join tables in laravel php


I have this query which is

SELECT * FROM books b 
INNER JOIN categories c ON b.category_id = c.id 
WHERE c.category_name = 'Comics'

thus is passed by parameter

SELECT * FROM books b 
INNER JOIN categories c ON b.category_id = c.id 
WHERE c.category_name = ?

I tried in Laravel like this

writer::join('categories','categories.id','=','writers.category_id')
  ->where('categories.category_name','Comics')
  ->get();

And with parameter

writer::join('categories','categories.id','=','writers.category_id')
  ->where(['categories.category_name' => $cat])
  ->get();

I didn't get any data in Laravel! Is there any mistake I am doing?


Solution

  • Try this instead:

    writer::join('categories','categories.id','=','writers.category_id')
    ->where([
      ['categories.category_name', '=', $cat]
    ])->get();
    

    or

    writer::join('categories','categories.id','=','writers.category_id')
    ->where('categories.category_name', $cat)
    ->get();