Laravel雄辩的一对多关系数据未显示

时间:2018-11-13 06:35:13

标签: laravel eloquent

我有两个表, 学生桌 有列(id,family_id,name,class,section) 家庭餐桌 其中有专栏(family_id,mobile_no,professional)

- 我创建了两个模型。 学生模型:

class student extends Model
{

}

家庭模式

class family extends Model
{
  public function student()
    {
        return $this->hasMany('App\student');

    }
}

- 我能够显示学生表中的所有数据, 我的控制器是:

public function index()
    {
       $finddata = student::orderBy('id', 'asc')->get();
      return view('students.index')->with('finddata', $finddata); }

- 我尝试过的事情 在家庭模式中:

返回$ this-> hasMany('App \ students');

我想要什么;

  • 我想将家庭模型与学生模型联系起来。
  • 索引页面将仅包含所有学生的姓名。我已经完成了
  • 当我单击学生姓名时,它应显示,有关特定学生的所有信息以及他的家庭信息。现在只显示学生表中的信息。

2 个答案:

答案 0 :(得分:0)

您应该尝试这个

class student extends Model
{

    public function familyId(){
        return $this->belongsTo(Family::class,'family_id');
    }

}

当您单击学生姓名时,它将重定向到学生/ {id}

路线

Route :: get('student / {id}','StudentController @ show');

学生控制器

public function show(Request $request, $id)
{
    $student = student::find($id);
    return view('student.show')->with('student', $student); 
}

student.show.blade文件

Mobile no: {{ $student->familyId->mobile_no }}
Profession: {{ $student->familyId->profession }}

答案 1 :(得分:0)

在学生模型中:

sub_heading LIKE '%Women and Children''s Voices%'
-- Here -----------------------------^

然后,您可以通过以下方式在Blade中访问家庭信息:

class student extends Model
{
    public function family(){
        return $this->belongsTo(Family::class,'family_id');
    }

}

您最好使用{{$student->family->mobile_no}} {{$student->family->profession}} 命令来生成模型和控制器,以便获得遵循命名约定(例如大写类名)的自动模板。