未定义变量:组_member.blade.php中的用户
我正在尝试从数据库表中搜索电子邮件(用户)我想在我的视图中显示电子邮件和名称组成员,以匹配电子邮件。在searchmember中进行数据库操作后,我用未定义变量:组_member.blade.php中的用户,php,laravel,Php,Laravel,我正在尝试从数据库表中搜索电子邮件(用户)我想在我的视图中显示电子邮件和名称组成员,以匹配电子邮件。在searchmember中进行数据库操作后,我用 dd($users->email) dd($users->name) 它的工作很好,可以打印电子邮件和名称,但随着我将数据传递到视图,它在我的视图中显示未定义的变量用户 这是我的控制器文件:StudentController.php <?php namespace App\Http\Controllers; use Illuminate\H
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()
,以便查询将返回一个集合。感谢我解决了这个问题,您解决了它,但请告诉我们您是如何解决的,接受的答案显然不能解决所提出的问题,但另一个答案可能是它确实解决了问题。