Как получить все данные из 3 таблиц с условием в laravel? - PullRequest
0 голосов
/ 14 января 2019

У меня есть 3 таблицы: школа, школьные принадлежности и прием, и я хочу получить все данные на главной странице, как я могу это сделать, я получаю данные о школе и таблице приема из-за отношений, но не из деталей школы, пожалуйста, проверьте их и помощь

school

id
name
name
mobile
city


schooldetails
id
school_id(foreign key of school id)
contact_person

admission

id
school_id(foreign key of school_deatils id)
admission_classes
start_date
end_date

My function
public function schoolslist($class='', $city='')
        {
        $schools = Admission::where('admission_classes', 'like', "%{$class}%")->where('status', '1')->orderBy('id','desc')->whereHas('school', function($query) use($city) {
    $query->where('city', 'like', $city);
})->paginate(10);
          return view('frontend.index',compact('schools'));

        }
        my Admission model
        public function School()
    {
        return $this->belongsTo('App\School');
    }
    public function SchoolDetails()
    {
        return $this->belongsTo('App\SchoolDetails');
    }
        
        My view
         @foreach($schools as $i => $school)
         {{ $school->School->name}} from user table Ravi
       {{ $school->SchoolDetails->contact_person}} //from school_Details table  No result 
         {{ $school->start_date }} //from admission table  date 11/22/2018
         @enforeach

1 Ответ

0 голосов
/ 14 января 2019

SchoolDetails должна быть связана с тем, что школа не принята, поэтому удалите SchoolDetails () из модели приема и добавьте ее в модель школы

Модель школы:

public function Admission()
{
    return $this->hasMany('App\Admission');    
}
public function SchoolDetails()
{
    return $this->hasOne('App\SchoolDetails');    \\Edited
}

Модель приема :

public function School()
{
    return $this->belongsTo('App\School');     
}

Модель SchoolDetails :

public function School()
{
    return $this->belongsTo('App\School');     \\Edited
}

Тогда вы можете изменить свой вид соответственно:

@foreach($schools as $i => $school)
    {{ $school->School->name}} from user table Ravi
    {{ $school->School->SchoolDetails->contact_person}}  // This Line is changed
    {{ $school->start_date }}
@enforeach
...