Laravel原始查询不起作用

时间:2015-08-06 23:32:02

标签: sql laravel select

我将一个旧的应用程序更新为php,其中一个疯狂的事情就是将一个SLQ语句保存在数据库中的一个函数......就像

field1(SearchOrderLetterID),field2(ShortName),field3(SQLstatement)    1

当我要执行sql时,我收到下一个错误" 无法访问空白属性"

查询示例:

SELECT CONVERT(VARCHAR(10),ClosingDate,101) 
FROM dbo.Orders WHERE OrderID = @OrderID

这是我的代码

public function getGenerateLetter($letterID, $orderID) {
    $letterFields = SearchOrderLetterParameter::where('SearchOrderLetterID', $letterID)->get();
    foreach($letterFields as $letterField) {
        $key = str_replace('##', '', $letterField->ShortName);

        if(preg_match('/@OrderID/', $letterField->SQLstatement))
            $query = str_replace('@OrderID', $orderID, $letterField->SQLstatement);

        $data[$key] = DB::select(DB::raw($query)); //here I'm getting the error
    }
}

DB中的每一行都有不同的SQL语句

如何获取查询结果?

1 个答案:

答案 0 :(得分:0)

您应该为此表达式提供别名

CONVERT(VARCHAR(10),ClosingDate,101)

以这种方式:

CONVERT(VARCHAR(10),ClosingDate,101) AS ClosingDate