如何在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?
我有这个查询 p>
SELECT * FROM books b
INNER JOIN类别c ON b.category_id = c.id
WHERE c.category_name ='漫画'
code> pre>
因此通过参数传递 p> \ n
SELECT * FROM books b
INNER JOIN类别c ON b.category_id = c.id
WHERE c.category_name =?
code> pre>
我在Laravel中试过这样的 p>
writer :: join('categories','categories.id','=','writers.category_id')
- &gt ; where('categories.category_name','漫画')
- > get();
code> pre>
并带参数 p>
writer :: join('categories','categories.id','=','writers.category_id')
- > where(['categories.category_name'=> $ cat] )
- > get();
code> pre>
我没有在Laravel中获得任何数据! 我有什么错误吗? p>
div>
答
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();