如何在 laravel 中获取对象

how to fetch object in laravel

        $sql = "select userId,UserName from User_Master(nolock) where UserName = '$username'"; //Need to change query for location. 
        $results = DB::select($sql);    
        $userId = $results[0]['userId'];

我无法以这种方式打印 $userId。 laravel

中的正确语法是什么

我对laravel不太熟悉,但是在laravel中编写查询必须遵循标准结构。根据 laravel 文档,您需要更改查询,如下所示:

$results = DB::table('User_Master(nolock)')
                     ->select(DB::raw('userId , UserName'))
                     ->where('UserName', '=', $username)
                     ->get();
print_r($results); // You can see your query result here

有关详细信息,请查看 laravel documentation

编辑

根据@Ethan22 的建议和laravel 文档:

select 方法总是 return 一个 array 结果。数组中的每个结果都是 PHP StdClass object.

所以你需要尝试 $results[0]->userId

您可以使用以下方式获取 userId:

$userId = $results[0]->userId;

但是您的代码存在一些问题。首先你应该确保你有这样的记录所以它应该是这样的:

$userId = $results ? $results[0]->userId : null;

此外你应该考虑SQL注入,所以更安全的是使用:

$sql = "select userId,UserName from User_Master(nolock) where UserName = ?"; //Need to change query for location. 
$results = DB::select($sql, [$username]);    
$userId = $results ? $results[0]->userId : null;