我有一个类User,它包含变量name,surname,email ......还有类Student和Teacher,它们扩展了User。
我想创建学生(创建,使他在数据库中):
<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类中没有name、surname ...变量,它们在User类中。Laravel试图将所有内容放入SQL表students中。(错误:数据库状态[42S22]:未找到列:1054 "字段列表"中的列"名称"未知)
我需要做什么?如何创建类的对象,继承自Laravel中的其他类?也许扩展数据库中的学生表,使其具有这些变量?
edit:学生类可以有如下变量:阶级频率。
1条答案
按热度按时间soat7uwm1#
如果您的Student类扩展了User类,则需要指定Student类正在使用的表,否则,Laravel必须根据模型名称猜测表名。
https://laravel.com/docs/9.x/eloquent#table-names
编辑
假设您有一个用户表,如下所示:
| 身份证|姓名|姓|是_学生|
| - ------| - ------| - ------| - ------|
| 1个|约翰|母鹿|无|
| 第二章|简|铁匠|1个|
和类表:
| 身份证|类|房间|
| - ------| - ------| - ------|
| 1个|几何形状|A类|
| 第二章|物理学|乙|
您可以通过透视表(classes_users)将它们连接起来,以存储其他特定于学生的数据:
| 学生标识|类标识|
| - ------| - ------|
| 第二章|1个|
| 三个|1个|
| 四个|第二章|