Laravel не поддерживает это, потому что базы данных обычно не поддерживают это. Типы столбцов increments()
и bigIncrements()
не могут использоваться несколько раз в одной и той же таблице Schema
и не будут созданы при создании:
PDOException: SQLSTATE[HY000]: General error: 1 table "students" has more than one primary key
Но если uniId
всегда будет на 43600000 больше, чем id
, вы можете использовать вычисляемый атрибут в Eloquent:
class Student
{
public function getUniIdAttribute()
{
return $this->id + 43600000;
}
}
Затем вы можете использовать это в своих контроллерах или шаблонах Blade:
>>> $user = Student::first()
=> App\Student{#3078
id: 1,
...
}
>>> $student->uniId
=> 43600001
Недостатком этого подхода является то, что вы выигралиневозможно использовать uniId
в качестве внешнего ключа в других таблицах.