Mic*_*cio 5 php sql sql-server laravel laravel-4
所以我想准备一个列表放入带有laravel的组合框中,我想使用连接来连接3列的值,我可以用这个来实现
public function deviList() {
return Device::select(DB::raw('CONCAT(DESC, OS, OS_V) AS FullDesc'), 'DEVI_ID')
->where('STATUS', 2)
->orderBy('DESC')
->lists('FullDesc', 'DEVI_ID');
}
Run Code Online (Sandbox Code Playgroud)
然而,最好有一个空格或斜线分隔列的值,所以我这样做,就像有些人在其他地方推荐的那样:
public function deviList() {
return Device::select(DB::raw('CONCAT(DESC," ",OS," ",OS_V) AS FullDesc'), 'DEVI_ID')
->where('STATUS', 2)
->orderBy('DESC')
->lists('FullDesc', 'DEVI_ID');
}
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误,说SQLSTATE [42S22]:[Microsoft] [用于SQL Server的ODBC驱动程序11] [SQL Server]无效的列名称''(所以我猜测与其他地方给出的示例不同,这些分色被读取就好像它们一样列?)那么如何连接某种分离?
如果您的 SQL Server 已QUOTED_IDENTIFIER打开,则双引号将用于标识对象,而不是字符串文字。在这种情况下,它" "不是表示空格的字符串,而是由不存在的空格表示的对象(列)。
尝试切换 SQL 语句中的引号:
public function deviList() {
return Device::select(DB::raw("CONCAT(DESC,' ',OS,' ',OS_V) AS FullDesc"), 'DEVI_ID')
->where('STATUS', 2)
->orderBy('DESC')
->lists('FullDesc', 'DEVI_ID');
}
Run Code Online (Sandbox Code Playgroud)
QUOTED_IDENTIFIER文档在这里。