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

у меня нет лучшего способа объяснить это, это то, что я хочу сделать я хочу установить отношение один ко многим между таблицей студентов и таблицей оценок студентов, но я хочу, чтобы регистрационный номер студента связывал таблицы, но регистрационный номер студента не является первичным ключом ни в одной из двух таблиц. Это стол моих учеников студенческий стол это таблица результатов моих учеников таблица результатов учеников Я пытался посмотреть везде, как это сделать, но я потерпел неудачу. пожалуйста, не ругайтесь, я новичок Пожалуйста, помогите мне, я начинаю строить школьный проект, который скоро понадобится. заранее спасибо!

Добро пожаловать в stackoverflow.com. Это не сайт службы кодирования. Покажите нам, что вы уже сделали в Минимальный, полный и проверяемый пример, и вы получите помощь

gehbiszumeis 22.01.2019 15:16

Покажите нам таблицы и код, который у вас есть.

Fabricio 22.01.2019 15:17

проверьте мой последний ответ, пожалуйста... Фабрисио, мне нужна помощь!

Sammie Einstein 22.01.2019 16:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
20
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
//Mark model.
public function student()
{
    return $this->belongsTo(
        Student::class,
        'registration_number' //Field name in the student_marks table
        'registration_number' //Field name in the students table
    );
}

//Student model
public function marks()
{
    return $this->hasMany(
        Mark::class,
        'registration_number', //Field name in the student_marks table
        'registration_number', //Field name in the students table
    );
}

Подробная информация об определении отношения; https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Concerns/HasRelationships.html

спасибо, сэр... позвольте мне попробовать это прямо сейчас... спасибо

Sammie Einstein 22.01.2019 15:33

пожалуйста, проверьте мой последний ответ и посмотрите мою проблему

Sammie Einstein 22.01.2019 16:28
    @foreach($marks as $mark)
                                                <tr class = "item{{$mark->id}}">
                                                    <td>{{ App\Students_mark::find($mark->id)->marks_for('Name_of_Student') }}</td>
                                                    <td>{{$mark->regno}}</td>
                                                    <td>{{$mark->course_unit_id}}</td>
                                                    <td>{{$mark->term_id}}</td>
                                                    <td>{{$mark->c_w_marks}}</td>
                                                    <td>{{$mark->e_o_t_marks}}</td>
                                                    <td>
                                                        <button class = "show-modal btn btn-sm btn-success" data-id = "{{$mark->id}}" data-name = "{{$mark->regno}}" data-abbrev = "{{$mark->course_unit_id}}" data-level = "{{$mark->term_id}}" data-lecturer = "{{$mark->c_w_mrks}}">
                                                            <span class = "glyphicon glyphicon-eye-open"></span> View</button>
                                                        <button class = "edit-modal btn btn-sm btn-info" data-id = "{{$mark->id}}" data-name = "{{$mark->regno}}" data-abbrev = "{{$mark->course_unit_id}}" data-level = "{{$mark->term_id}}" data-lecturer = "{{$mark->c_w_mrks}}">
                                                            <span class = "glyphicon glyphicon-edit"></span> Edit</button>
                                                        <button class = "delete_data btn btn-sm btn-danger" data-id = "{{$mark->id}}" data-name = "{{$mark->regno}}">
                                                            <span class = "glyphicon glyphicon-trash"></span> Delete</button>
                                                    </td>
                                                </tr>
                                            @endforeach

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

        public function marks(){
        return $this->hasMany(
            Students_mark::class,
            'regno',
            'RegNo'
        );
    }

таблица оценок учеников

        public function marks_for(){
        return $this->belongsTo(
            StudentsReg::class,
            'regno',
            'RegNo'
        );
    }

надеюсь, вы меня понимаете, я ищу лучший способ объяснить это, но я потерпел неудачу!

Другие вопросы по теме