如何在查询生成器中设置条件?
Posted
技术标签:
【中文标题】如何在查询生成器中设置条件?【英文标题】:How to set condition in Query Builder? 【发布时间】:2016-11-11 03:38:37 【问题描述】:我正在尝试在我的函数中设置一个条件,我需要将我的列 role_id
设置为 1,如果它是真的,它将返回给我一个视图。首先我检索users
表$result = DB::table('users')->get();
中的所有列,然后设置一个if 条件。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use App\Http\Requests;
use DB;
class DocumentController extends Controller
public function getDocuments()
$result = DB::table('users')->get();
if ('role_id' == 1)
return view ('document.create');
我试图设置我的role_id == 1
,但它说。
使用未定义的常量 role_id - 假定为“role_id”
【问题讨论】:
【参考方案1】:试试这个...
// if you want to fetch only user with role_id = 1
$users = DB::table('users')->where('role_id', '=', 1)->get();
在你的情况下,你可以使用类似的条件
if( $users->role_id == 1 )
【讨论】:
这向我展示了一个视图。但是当我使用不同的role_id
登录用户时,它仍然显示return view ('document.create');
假设此视图仅适用于值为1 的role_id
。
如果您只检查登录用户,那么您必须使用 if(\Auth::user()->role_id == 1) @anyber 建议。
正是我要找的。感谢您的帮助。【参考方案2】:
如果要查看当前用户,只需要利用Auth::user()
:
if(\Auth::user()->role_id == 1)
【讨论】:
role_id
多于一个时如何设置条件?
如果不止一个怎么定义? 1,2,3
、1|2|3
,还是其他方式?
而不是写else if (Auth::user()->role_id == 3)
我怎么能在一种情况下做到这一点?
您希望两者都显示该视图?` if(\Auth::user()->role_id == 1 || Auth::user()->role_id == 3)`。如果你想让它们转到不同的视图,那么你需要一个 if/else 或一个 switch 语句。以上是关于如何在查询生成器中设置条件?的主要内容,如果未能解决你的问题,请参考以下文章
iOS:如何获取刚刚在界面生成器中设置的 UIView 的框架
如何在 WPF 的 Datagrid 中设置以编程方式生成的 ComboBox 的启用属性?
如何在 Rider 中设置 Xamarin.ios 视图的属性? (如何更新自动生成的 View.designer.cs?)