错误异常 (E_ERROR) 尝试获取非对象的属性,同时尝试访问关系表上的列



>我不断收到错误

ErrorException (E_ERROR)

尝试获取非对象的属性(查看:C:\xampp\schooller\resources\views\teachers\view.blade.php(

而且我不知道错误来自我尝试访问的每个错误

{{ $teacher->class->class }}</td>

基本上,我正在尝试访问班级表上的一列,我已将其 id 添加到教师的表中,将两者链接起来。所以,我只想显示老师教的班级,这是已经保存在数据库中的东西。

这是我的老师.php

class Teacher extends Model
{
protected $fillable = [
'full_name', 'photo', 'class', 'credential'
];
public function classes(){
return $this->belongsTo('AppClasses', 'class');
}
public function student(){
return $this->hasMany('AppStudent');
}
public function subjects(){
return $this->belongsToMany('AppSubjects');
}
}

而且,我的迁移表

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateTeachersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('teachers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('full_name')->nullable();
$table->string('subjects')->nullable();
$table->string('class')->nullable();
$table->string('slug')->nullable();
$table->string('credential')->default('BSC');
$table->string('photo')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('teachers');
}
}

所以,这是我用来将class->id添加到老师表中的表格。完美工作。

<div class="form-group">
<label for="class">Select Class</label>
<select name="class" id="class" class="form-control">
@foreach($classes as $class)
<option value="{{ $class->id }}">{{ $class->class }}</option>
@endforeach
</select>

所以,基本上,我有一个班级表和一个教师表。

我还有一个教师模型,它以归属关系返回类。

此外,我能够将班级的 id 添加到教师表上的列中。

现在我正在尝试通过拨打$teacher班来访问老师教的班级

并且,它不断抛出尝试获取非对象的属性。

你能帮我吗?我做错了什么? 请我需要帮助,我看不到我做错了什么。所有关系表属性调用都不起作用。我希望我能够更好地解释。

PS:控制器只是返回顶部的视图。

你的关系名称是classes,你用$teacher->class->class来称呼他们,应该是这样的吗?$teacher->classes->class

最新更新