У меня есть таблица, где у меня есть все данные о сотруднике.Я хочу сделать employee_id и только месяц и год из date_of_salary уникальными в таблице.Для этого конкретного идентификатора сотрудника и месяца / года должна присутствовать только одна строка.Date_of_salary - это столбец с типом данных date.
Я попытался использовать следующее, но это работает для идентификатора сотрудника и полной даты.Требуется несколько записей за один месяц.
$table->unique(['employee_id', 'date_of_salary']);
Это моя полная функция для миграции
public function up()
{
Schema::create('employee_salary_details', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('employee_id')->required();
$table->date('date_of_salary')->required();
$table->foreign('employee_id')
->references('id')
->on('employees')
->onDelete('restrict');
$table->unique(['employee_id', 'date_of_salary']);
$table->timestamps();
});
}
Каждая строка должна быть уникальной для сотрудника и месяца / года зарплаты.Потому что зарплата может выплачиваться только один раз в месяц, но в любой день.