Php 如何在Laravel中的DB::Select()中添加变量SQL查询

Php 如何在Laravel中的DB::Select()中添加变量SQL查询,php,sql,database,laravel,Php,Sql,Database,Laravel,我有一个DB::select() 这就是我试图做的,但它返回SQL语法错误 $restaurantSql = ""; $restaurantIds = [6,43,51]; if ($someOtherVariable) { $restaurantSql = "AND orders.restaurant_ids IN (".implode(",", $restaurantIds).")"; } $resu

我有一个
DB::select()

这就是我试图做的,但它返回SQL语法错误

$restaurantSql = "";
$restaurantIds = [6,43,51];

if ($someOtherVariable) {
    $restaurantSql = "AND orders.restaurant_ids IN (".implode(",", $restaurantIds).")";
}

$result = DB::select(
    "SELECT *
    FROM orders
    JOIN restaurants ON orders.restauant_id = restaurants.id
    WHERE orders.status = 'complete' :restaurant_sql AND
    orders.created_at >= :start_date",
    ["restaurant_sql" => $restaurantSql, "start_date" => $startDate]
);

start_date
根据Laravel提供的文档工作,但是
restaurant_sql
不工作。你知道我怎样才能做到这一点吗?

我想你的问题就在这里

$result = DB::select(
    "SELECT *
    FROM orders
    JOIN restaurants ON orders.restauant_id = restaurants.id
    WHERE orders.status = 'complete'". $restaurantSql. "AND
    orders.created_at >= :start_date",
    ["restaurant_sql" => $restaurantSql, "start_date" => $startDate]
);

我不想添加餐厅ID,我想动态添加整个SQL。好的,我知道了,我更改了代码。请再检查一下,我不知道它能那样工作。谢谢你,山猫