如何使用存储控制器方法在Laravel,当类扩展另一个?



我有类用户,有变量如姓名,姓氏,电子邮件…以及扩展User的类Student和Teacher。让我们把注意力集中在学生课堂上。

我想创建学生(创建使他在数据库中):

<form method="post" action="{{ route('students.store') }}">
@csrf
<div>
<x-input-label for="name" :value="__('Name of student')" />
<x-text-input id="name" type="text" name="name" :value="old('name')" autofocus />
<x-input-error :messages="$errors->get('name')" class="mt-2" />
</div>
...
<x-primary-button>
{{ __('Create') }}
</x-primary-button>
</form>

但问题是,没有名字,姓氏…变量在Student类中,它们在User类中。Laravel试图将所有内容放在SQL表学生中。(错误:SQLSTATE[42S22]: Column not found: 1054 Unknown Column 'name' in 'field list')

我该怎么做?如何创建从Laravel其他类继承类的对象?也许扩展数据库中的学生表,让它有这些变量?

edit: Student class可以有如下变量:classes, frequency…

如果Student类扩展了User类,则需要指定Student类使用的表,否则,Laravel必须根据模型名猜测表名。

protected $table = 'users';

https://laravel.com/docs/9.x/eloquent表名

编辑,

假设你有一个这样的Users表:

<表类>id名称姓is_studenttbody><<tr>1约翰和02简史密斯1

最新更新