如何在查询生成器中设置条件?

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,31|2|3,还是其他方式? 而不是写else if (Auth::user()-&gt;role_id == 3) 我怎么能在一种情况下做到这一点? 您希望两者都显示该视图?` if(\Auth::user()->role_id == 1 || Auth::user()->role_id == 3)`。如果你想让它们转到不同的视图,那么你需要一个 if/else 或一个 switch 语句。

以上是关于如何在查询生成器中设置条件?的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何获取刚刚在界面生成器中设置的 UIView 的框架

在变量中设置生成器函数的结果[重复]

如何在 ember cli 生成的模型中设置休息适配器

如何在不使用 %s 的情况下安全、动态地在查询中设置列名?

如何在 WPF 的 Datagrid 中设置以编程方式生成的 ComboBox 的启用属性?

如何在 Rider 中设置 Xamarin.ios 视图的属性? (如何更新自动生成的 View.designer.cs?)