簡體   English   中英

如何在刀片文件的 Laravel 中顯示外鍵 ID

[英]How can I display Foreign Key ID in Laravel on blade file

我不知道如何從這個外鍵中獲取數據。 我已按照文檔中的所有步驟進行操作,但我仍然不知道需要做什么。 這是我的教師表(function 的主要部分):

public function up()
{
    Schema::create('teachers', function (Blueprint $table) {
        $table->id();
        $table->unsignedbiginteger('levels_id');
        $table->foreign('levels_id')->references('id')->on('levels');
        $table->string('teacher_name'); 
        $table->string('teacher_email')->unique();           
        $table->string('teacher_home_phone');
        $table->string('teacher_mobile_phone');
        $table->string('teacher_work_phone');
        $table->string('teacher_home_address');
        $table->string('teacher_suburb');
        $table->string('teacher_postcode');
        $table->string('teacher_username');
        $table->string('teacher_password');                      
        $table->timestamps();
    });
}

這是我的等級表:

public function up()
{
    Schema::create('levels', function (Blueprint $table) {
        $table->bigIncrements('id');            
        $table->string('levels_name');
        $table->timestamps();
    });
}

這是我的 model Teacher.php

class Teacher extends Models {

    protected $fillable = [
        'levels_id', 
        'teacher_name',
        'teacher_email',
        'teacher_home_phone',
        'teacher_work_phone',
        'teacher_mobile_phone',
        'teacher_home_address',
        'teacher_suburb',
        'teacher_postcode',
        'teacher_username',
        'teacher_password',
        'teacher_level',
    ];

    public function levels()
    {
        return $this->hasMany(Levels::class);
    }               
}

這是我的levels.php文件:

class Levels extends Model
{
    use HasFactory;

    protected $fillable = [
        'levels_id',
        'levels_name',
    ];

    public function levels()
    {
         return $this->belongsTo(Teacher::class);
    }
}

這是一個用於教師\partials\form.blade.php 的刀片文件:

<div class="form-group col-md-5">
                <label for="Teacher_Name" class="required">Mention levels Instructor's going to teach </label>
                <div class="col-md-12">
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 1" @if(isset($teacher->levels_id) && @in_array('Level 1', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 1</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 2" @if(isset($teacher->levels_id) && @in_array('Level 2', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 2</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 3" @if(isset($teacher->levels_id) && @in_array('Level 3', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 3</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 4" @if(isset($teacher->levels_id) && @in_array('Level 4', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 4</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 5" @if(isset($teacher->levels_id) && @in_array('Level 5', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 5</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 6" @if(isset($teacher->levels_id) && @in_array('Level 6', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 6</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 7" @if(isset($teacher->levels_id) && @in_array('Level 7', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 7</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 8" @if(isset($teacher->levels_id) && @in_array('Level 8', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 8</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 9" @if(isset($teacher->levels_id) && @in_array('Level 9', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 9</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 10" @if(isset($teacher->levels_id) && @in_array('Level 10', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 10</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 11" @if(isset($teacher->levels_id) && @in_array('Level 11', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 11</label>
                    </div>
                    <div class="form-check form-check-inline col-md-3">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="Level 12" @if(isset($teacher->levels_id) && @in_array('Level 12', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Level 12</label>
                    </div>
                    <div class="form-check form-check-inline col-md-4">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="undergraduate" @if(isset($teacher->levels_id) && @in_array('undergraduate', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Undergraduate</label>
                    </div>
                    <div class="form-check form-check-inline col-md-4">
                        <input class="form-check-input" type="checkbox" name="levels_id[]" value="postgraduate" @if(isset($teacher->levels_id) && @in_array('postgraduate', @$teacher->levels_id)) {{'checked'}} @endif>
                        <label class="form-check-label">Postgraduate</label>
                    </div>

您在 model 中使用了錯誤的關系,您的表結構定義了您應該在此處使用 belongsTo Rlelation。

public function levels()
{
    return $this->belongsTo(Levels::class);
}    

關系是相反的(根據您的表結構)。 一位教師屬於一個級別。

如果是這樣,您應該使用:

public function level()
{
    return $this->belongsTo(Levels::class);
}

此外,將關系命名為單數更有意義,因為它只屬於一個級別,而不是多個級別(您應該為您的模型做同樣的事情)。

反過來(要從$level實例訪問教師模型,您可以從 Levels model 定義 Has Many 關系:

public function teachers()
{
    return $this->hasMany(Teacher::class);
}

有關更多信息,請查看有關此的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM