Laravel красноречивые данные отношения один ко многим не отображаются - PullRequest
0 голосов
/ 13 ноября 2018

у меня есть две таблицы, Стол ученический которые имеют столбец (id, family_id, имя, класс, раздел) Семейный стол которые имеют столбец (family_id, mobile_no, профессию)

- Я создал две модели. модель студента:

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); }

- что я пробовал в семейной модели:

return $ this-> hasMany ('App \ Students');

что я хочу;

  • Я хочу связать семейную модель со студенческой моделью ..
  • На индексной странице будут указаны только имена учеников. что я уже сделал
  • когда я нажимаю на имя студента, оно должно показывать всю информацию о конкретном ученике и информацию о его семье. сейчас он показывает только информацию из таблицы учеников.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

В модели ученика:

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

}

Затем вы можете получить доступ к информации о семье в Blade с помощью:

{{$student->family->mobile_no}}
{{$student->family->profession}}

Вам лучше использовать команды artisan для генерации моделей и контроллеров,так что вы получите автоматические шаблоны, которые следуют соглашениям об именах, например, имена классов в верхнем регистре.

0 голосов
/ 13 ноября 2018

Вы должны попробовать это

class student extends Model
{

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

}

, когда вы нажимаете на имя студента, оно будет перенаправлено на student / {id}

route

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 }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...