如何从Laravel 4中的单行中获取单个列?
这是我正在尝试的:
return DB::selectOne("
SELECT EXISTS(
SELECT *
FROM permissions p
JOIN role_permissions rp ON rp.permission_id=p.id
JOIN user_roles ur ON ur.role_id=rp.role_id
WHERE ur.user_id=? AND p.code=?
)
",[Auth::user()->id,$perm_code]);
Run Code Online (Sandbox Code Playgroud)
selectOne 虽然返回这个丑陋的对象:
object(stdClass)#297 (1) {
["EXISTS(
SELECT *
FROM permissions p
JOIN role_permissions rp ON rp.permission_id=p.id
JOIN user_roles ur ON ur.role_id=rp.role_id
WHERE ur.user_id=? AND p.code=?
"]=>
string(1) "0"
}
Run Code Online (Sandbox Code Playgroud)
还有更好的东西吗?
使用PDO也很难看:
$stmt = DB::getPdo()->prepare("
SELECT EXISTS(
SELECT *
FROM permissions p
JOIN role_permissions rp ON rp.permission_id=p.id
JOIN user_roles ur ON ur.role_id=rp.role_id
WHERE ur.user_id=? AND p.code=?
)
");
$stmt->execute([Auth::user()->id,$perm_code]);
return (bool)$stmt->fetchColumn();
Run Code Online (Sandbox Code Playgroud)
小智 21
用这个:
DB::table('users')->pluck('columname');
Run Code Online (Sandbox Code Playgroud)
从内联文档:
/**
* Pluck a single column's value from the first result of a query.
*
* @param string $column
* @return mixed
*/
Run Code Online (Sandbox Code Playgroud)
要从第一个结果中获取单个值,您可以使用\Illuminate\Database\Query\Builder::value. 例如
$lastInvoice = DB::table('booking_groups')
->where('company_id','=',$booking->company_id)
->orderBy('invoice_number','desc')
->value('invoice_number');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31556 次 |
| 最近记录: |