sql - 将 SQL 查询转换为 Laravel 4 Eloquent

标签 sql laravel laravel-4 eloquent

谁能帮我把下面的 SQL 查询转换成 Eloquent?

select * 
from products, categories 
where products.productID=categories.productID and categories.categoryID = 5;

这是我试过的:

$products = DB::table('products') ->join('categories', function($join) {
    $join->on('products.productID', '=', 'categories.productID')
         ->where('categories.categoryID',$categoryID)
} ->get();

最佳答案

问题可能是,$categoryID 在闭包(又名匿名函数)内不可用。为了能够“从外部”使用变量,您必须添加 use

$products = DB::table('products')->join('categories', function($join) use ($categoryID){
$join->on('products.productID', '=', 'categories.productID')
     ->where('categories.categoryID', '=', $categoryID);
})->get();

关于sql - 将 SQL 查询转换为 Laravel 4 Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661778/

相关文章:

sql - 修复数据库不一致 - ID 字段

Laravel 任务调度设置为每分钟运行一次,但只运行一次

php - Laravel - 500 内部服务器错误

php - 通过用户名在 Laravel 中查找用户

MySQL 查询选择过去 7 天的每一天的最后一条记录

mysql - 一个查询中的多个 INSERT INTO 语句

sql - Postgres 条件联合?

php - Laravel 软删除在数据透视表中不起作用

mysql - Laravel orderby 与 groupby sql

php - Laravel 在某些机器 - 浏览器中返回 302