[英]Laravel5 whereRaw not working to parameterize column name
我正在嘗試使用whereRaw語句來構建send_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'));
我認為您誤會了使用時發生了什么?
這里。 這不是簡單的串聯,而是參數綁定。 參見http://php.net/manual/en/pdostatement.bindparam.php 。
但是,串聯( .
)會為您工作。
$query->where("products.sent_".$storeName.", 0);
但是,這似乎不是一個好的設計,因為它要求您每次添加新商店時都要做類似的事情以及更改表。
如果還不算太晚,我會重新考慮這種方法。 您可能會創建一個新的stores
表,每個stores
表都有自己的id
。 然后創建其中包含一個樞軸表product_id
, store_id
和sent
塔。 然后,您將可以利用belongsToMany
關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.