我正在尝试使用whereRaw语句构建列sent_storename。但是当我尝试连接值时,查询不起作用。当我修复列时,它可以工作。我怎么能这样做?
$query = $this->model->getQuery()->where('products.environment_hash', $hash )->whereRaw('products.deleted_at is null');
$query->select('sku_config','name', 'stock_quantity', 'color', 'size', 'special_price', DB::raw('(special_price/default_price-1)*100 as profit_mark'));
$query->leftJoin('ads', 'ads.product_id', '=', 'products.id');
$query->whereRaw("products.sent_? = 0", array('storename'));
答案 0 :(得分:0)
我认为你误解了在这里使用?
时发生的事情。它不是简单的连接,它是参数绑定。请参阅http://php.net/manual/en/pdostatement.bindparam.php。
但是,连接(.
)会对你有用。
$query->where("products.sent_".$storeName.", 0);
然而,这似乎不是一个好的设计,因为它要求你做这样的事情,并在每次添加新商店时改变表格。
如果还不晚,我会重新思考这种方法。您可以创建一个stores
的新表,每个表都有自己的id
。然后创建一个包含product_id
,store_id
和sent
列的数据透视表。然后,您就可以利用belongsToMany
关系。