首页 > 解决方案 > 使用 yii\db\Query 时为值添加前缀

问题描述

在使用数据库查询从数据库中获取数据时,有没有办法为值添加前缀?我以 var 为例向您展示了我想要的样子。

$query = (new \yii\db\Query())->select(['name' , 'product_image."$prefix"' ])->from('products');

假设我想在每个图像路径之后添加一个前缀_250x250,所以最终输出将是pathToImage_250x250or uploads/pathToImage_250x250

标签: yii2

解决方案


您可以使用yii\db\Expression创建更高级的选择。例如对于 MySQL,您可以CONCAT()为此使用函数:

$query = (new \yii\db\Query())
    ->select([
        'name',
        'product_image' => \yii\db\Expression('CONCAT(product_image, :suffix)', [
            ':suffix' => '_250x250',
        ]),
    ])
    ->from('products');

推荐阅读