我对Laravel还是很陌生,但是在获取所需信息方面遇到困难。在数据库中,我有一些表:用户,学生和老师。在“用户”表中,它具有称为“状态”的列,用于指定用户是老师还是学生。我似乎无法提取该特定信息来检查它是学生还是老师。
答案 0 :(得分:1)
好吧。
因此,您有两种用户类型,一个公共用户表,以及每种用户类型的表。
首先,我会说,与其使用布尔值来区分两种用户类型,不如说是使用关系。
在您的User
模型中:
class User extends Model
{
public function teacher()
{
return $this->belongsTo('App\Teacher', 'user_id');
}
public function student()
{
return $this->belongsTo('App\Student', 'user_id');
}
...
}
通过这种方式,您可以通过检查是否存在关系来轻松检查用户是老师还是学生:
$isStudent = is_null($user->student);
$isTeacher = is_null($user->teacher);
如果您要检索所有教师或学生的用户模型,则可以:
$areStudents = \App\User::has('student')->get();
$areTeachers = \App\User::has('teacher')->get();
我希望这会对您有所帮助。
P.S .:我的回答是基于您在问题中提出的详细信息,希望我不会误会它。如果您需要更具体的答案,请尝试也发布您的代码。