未定义变量:组_member.blade.php中的用户

未定义变量:组_member.blade.php中的用户,php,laravel,Php,Laravel,我正在尝试从数据库表中搜索电子邮件(用户)我想在我的视图中显示电子邮件和名称组成员,以匹配电子邮件。在searchmember中进行数据库操作后,我用 dd($users->email) dd($users->name) 它的工作很好,可以打印电子邮件和名称,但随着我将数据传递到视图,它在我的视图中显示未定义的变量用户 这是我的控制器文件:StudentController.php <?php namespace App\Http\Controllers; use Illuminate\H

我正在尝试从数据库表中搜索电子邮件(用户)我想在我的视图中显示电子邮件和名称组成员,以匹配电子邮件。在searchmember中进行数据库操作后,我用

dd($users->email)

dd($users->name)

它的工作很好,可以打印电子邮件和名称,但随着我将数据传递到视图,它在我的视图中显示未定义的变量用户

这是我的控制器文件:StudentController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
// use App\Student;
class StudentController extends Controller
{
    public function groupmember()
    {
        return view('group_member');
    }
    public function searchmember(Request $request)
    {
        $search=$request->get('searchmember');
        $this->validate($request,[
            'email'=>'required'
        ]);
        $users = DB::table('users')->where('email', '=', $request->email)->first();
        if($users != NULL)
        {
            return view("group_member",compact("users"));
        }
        else
        {
            return redirect('/groupmember')->with('Info', 'No such email found');
        }
    }
}
帮我整理一下,我是拉雷维尔的新手,

这行:

 $users = DB::table('users')->where('email', '=', $request->email)->first();
正在正确地拖动单个对象,
$users
。不是收藏

当您进入blade视图时,这些行正试图在用户集合中循环:

@foreach($users as $user1)
    <tr>
        <td> {{$user1->name}}</td>
        <td> {{$user1->email}}</td>
     </tr>
@endforeach
然后,在您的blade页面上,无需循环,您拥有匹配电子邮件的单个用户,因此跳过
@foreach
,只需使用:

 <td> {{$user->name}}</td>
 <td> {{$user->email}}</td>
然后在刀片页面上,考虑这一点

@if($user)
    <td> {{$user->name}}</td>
    <td> {{$user->email}}</td>
@endif
@if($user)
{{$user->name}
{{$user->email}
@恩迪夫
此行:

 $users = DB::table('users')->where('email', '=', $request->email)->first();
正在正确地拖动单个对象,
$users
。不是收藏

当您进入blade视图时,这些行正试图在用户集合中循环:

@foreach($users as $user1)
    <tr>
        <td> {{$user1->name}}</td>
        <td> {{$user1->email}}</td>
     </tr>
@endforeach
然后,在您的blade页面上,无需循环,您拥有匹配电子邮件的单个用户,因此跳过
@foreach
,只需使用:

 <td> {{$user->name}}</td>
 <td> {{$user->email}}</td>
然后在刀片页面上,考虑这一点

@if($user)
    <td> {{$user->name}}</td>
    <td> {{$user->email}}</td>
@endif
@if($user)
{{$user->name}
{{$user->email}
@恩迪夫

您在查询生成器中使用的是
->first()
方法,因此它返回一个用户对象而不是集合

控制器中更改这些行

//您将获得1个用户。所以$user不是$users
$user=DB::table('users')->其中('email','=',$request->email)->first();
//返回$user对象以使用键“user”查看
返回视图(“组成员,[“用户”=>$user]);
在您的组成员视图中

// We are getting 1 user, So no need loop
<tr>
    <td> {{$user->name}}</td>
    <td> {{$user->email}}</td>
</tr>
//我们将获得1个用户,因此不需要循环
{{$user->name}
{{$user->email}

您在查询生成器中使用的是
->first()
方法,因此它返回一个用户对象而不是集合

控制器中更改这些行

//您将获得1个用户。所以$user不是$users
$user=DB::table('users')->其中('email','=',$request->email)->first();
//返回$user对象以使用键“user”查看
返回视图(“组成员,[“用户”=>$user]);
在您的组成员视图中

// We are getting 1 user, So no need loop
<tr>
    <td> {{$user->name}}</td>
    <td> {{$user->email}}</td>
</tr>
//我们将获得1个用户,因此不需要循环
{{$user->name}
{{$user->email}

由于您的
groupmember
函数,它还返回
group\u member
视图,在该视图中使用
$users
变量,您必须与视图一起返回该变量,就像您在另一个函数
searchmember
中所做的那样。但是请注意,在视图中,您尝试对变量进行foreach,但是当您对DB进行查询时,您指示只获取第一条记录,因此foreach没有意义。您可以将
first(),它还返回
group\u member
视图,如果使用
$users
变量,则必须将该变量与视图一起返回,就像在另一个函数
searchmember
中所做的那样。但是请注意,在视图中,您尝试对变量进行foreach,但是当您对DB进行查询时,您指示只获取第一条记录,因此foreach没有意义。您可以将
first()
更改为
get()
,以便查询将返回一个集合。感谢我解决了这个问题,您解决了它,但请告诉我们您是如何解决的,接受的答案显然不能解决所提出的问题,但另一个答案可能是它确实解决了问题。