试图获得财产';部门';具有一对多关系的laravel中的非对象

试图获得财产';部门';具有一对多关系的laravel中的非对象,laravel,eloquent,Laravel,Eloquent,实际上我想和两个表建立关系,一个是学生表,其中有学生的一些数据。另一张桌子有部门通知。我想根据学生部的要求查看系通知。学生在学生表上有一个学生的登录id、密码、部门和许多其他信息。屏幕截图如下所示 public function individualdepartment(){ $this->AdminAuthCheck(); $id=Session::get('id'); $student=Administration::find($id);

实际上我想和两个表建立关系,一个是学生表,其中有学生的一些数据。另一张桌子有部门通知。我想根据学生部的要求查看系通知。学生在学生表上有一个学生的登录id、密码、部门和许多其他信息。屏幕截图如下所示

public function individualdepartment(){
        $this->AdminAuthCheck();
        $id=Session::get('id');
        $student=Administration::find($id);

        return view('Student.department',compact('student'));
    }

现在我想尝试根据部门访问另一个表部门。屏幕截图如下所示

这里给出了CseDepartment模型

 public function administration()
{
    return $this->belongsTo('App\Administration','dept');
}
管理模式

 public function department()
{
    return $this->hasMany('App\CseDepartment','dept');
}
函数如下所示

public function individualdepartment(){
        $this->AdminAuthCheck();
        $id=Session::get('id');
        $student=Administration::find($id);

        return view('Student.department',compact('student'));
    }
查看页面部门

@foreach ($student as $students)
                    {{-- expr --}}

                <tr>
                    <td>{{$students->department->name}}</td>
                    <td>{{$students->department->message}}</td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
                    @endforeach
@foreach($student as$students)
{{--expr--}
{{$students->department->name}
{{$students->department->message}
@endforeach

在您的控制器中,您正在调用
find()
方法,该方法为您提供一个对象,即
学生

$student=Administration::find($id);
在您的blade页面中,您将要求循环该单个对象并生成一个集合:

@foreach ($student as $students) // There is only ONE student, this will not loop.
如果您想让上述功能发挥作用,可以从控制器抓取一个集合:

// Note the plural naming convention to make it a little more clear
$students=Administration::all(); 
return view('Student.department',compact('students'));
然后在刀片文件中,您可以这样循环:

@foreach ($students as $student)  // note the name plural --> singluar
            <tr>
                <td>{{$student->department->name}}</td>  // Now you have a single student
                <td>{{$student->department->message}}</td>
@foreach($students as$student)//注意复数-->singluar的名称
{{$student->department->name}}//现在你只有一个学生了
{{$student->department->message}

这将解决非对象错误。

我可以看到您正在循环中使用
$student->department
,该循环应该是
$student->department