我想在數據表中顯示相關的字段。但是,它不會讓我進入這個領域。從表中顯示相關領域到數據表問題
例如:我有一個叫做Level的模態。我有另一個叫Classes。 一個Level可以有很多類,但一個類只能屬於一個級別。
這裏是水平模式:
public function classes()
{
return $this->hasMany('App\Models\NiixClass');
}
和類模型
public function level()
{
return $this->belongsTo('App\Models\Level');
}
當我嘗試訪問級別 - >返回的名字罷了。 例如從這樣的:
$classes = NiixClass::select(['classes.id', 'classes.name', 'classes.created_at', 'classes.updated_at'])->with('level')->get();
dd($classes[0]->level()->get());
我得到:
Collection {#413
#items: []
}
更新:
dd($classes[0]->level);
返回null。
更新2:
這裏是類架構
public function up()
{
//
Schema::create('classes', function (Blueprint $table) {
$table->increments('id');
$table->integer('level_id');
$table->string('name');
$table->string('thin_background_image_local');
$table->string('thin_background_image_s3', 2083);
$table->string('full_background_image_local');
$table->string('full_background_image_s3', 2083);
$table->boolean('is_free')->default(false);
$table->integer('num_minutes');
$table->integer('sort_order');
$table->timestamps();
$table->softDeletes();
});
}
這裏是水平模式
public function up()
{
//
Schema::create('levels', function (Blueprint $table) {
$table->increments('id');
$table->integer('training_programme_id');
$table->string('name');
$table->string('logo_image_local');
$table->string('logo_image_s3', 2083);
$table->string('background_image_local');
$table->string('background_image_s3', 2083);
$table->integer('weeks_num');
$table->text('description_intro');
$table->text('description_main');
$table->string('video_local');
$table->string('video_s3', 2083);
$table->integer('sort_order');
$table->timestamps();
$table->softDeletes();
});
}
我們可以看到數據庫模式嗎?您需要根據約定在classes表中命名外鍵,或者在Level模型中指定字段名稱。 – Arty
我已經更新了模式的問題。 –