Php 未定义的偏移量:拉维6中的1

Php 未定义的偏移量:拉维6中的1,php,laravel,laravel-6,Php,Laravel,Laravel 6,我遇到了一个未定义偏移量的问题。这是我的控制器: if($request->submit == "online") { if(!empty($_POST['speciality'])){ $users = User::where('speciality','=',$_POST['speciality'])->orWhere('speciality1','=',$_POST['speciality'])

我遇到了一个未定义偏移量的问题。这是我的控制器:


    if($request->submit == "online")
    {
        if(!empty($_POST['speciality'])){
         $users = User::where('speciality','=',$_POST['speciality'])->orWhere('speciality1','=',$_POST['speciality'])
         ->orWhere('speciality2','=',$_POST['speciality'])->get();
         return view('result',compact('users')); 
         }
   }
我使用的是Laravel6。 这是我的刀:

@foreach($users)
hello {{$user['full_name']}} 
@endforeach

我需要帮忙。谢谢大家!

在本例中,您实际上无法使用orWhere,因为您已经通过调用get()方法重新执行了查询,之后结果将是一个集合,而不是查询生成器


解决方案应该是删除第一个get方法调用。

在这种情况下,您实际上不能使用orWhere,因为您已经通过调用get()方法重新执行了查询,然后结果将是一个集合,而不是查询生成器


解决方案应该是删除第一个get方法调用。

您正在集合上使用的orWhere(即在调用->get()之后)。你不能那样做。您需要在模型上使用它(好的,查询生成器)

因此,您的代码应该如下所示:

     if($request->submit == "online")
     {
        if(!empty($_POST['speciality'])){
         $onlineUsers = User:: where('online_position','=',1);
         $users = $onlineUsers>where('speciality','=',$_POST['speciality'])
         ->orWhere('speciality1','=',$_POST['speciality'])
         ->orWhere('speciality2','=',$_POST['speciality'])->get();
         return view('result',compact('users')); 
         }
     }

您正在集合上使用orWhere(即调用->get()之后)。你不能那样做。您需要在模型上使用它(好的,查询生成器)

因此,您的代码应该如下所示:

     if($request->submit == "online")
     {
        if(!empty($_POST['speciality'])){
         $onlineUsers = User:: where('online_position','=',1);
         $users = $onlineUsers>where('speciality','=',$_POST['speciality'])
         ->orWhere('speciality1','=',$_POST['speciality'])
         ->orWhere('speciality2','=',$_POST['speciality'])->get();
         return view('result',compact('users')); 
         }
     }

你试过调试这个问题吗?你试过调试这个问题吗?