Установить внешний ключ в строку при сохранении в базе данных в Laravel 5.7

#mysql #laravel

#mysql #laravel

Вопрос:

У меня есть users таблица и activity_log table. В users таблице id значение хранится в виде уникальной строки. При сохранении любого значения в activity_log таблице, causer_id которое является внешним ключом к users.id полю, сохраняется значение 0.

Я попытался изменить keytype causer_id в modal.

 protected $keyType = 'string';
public $incrementing = false;
  

Но я думаю, что это для первичного ключа, а не для внешнего ключа. Я также меняю тип causer_id в activity_log таблице на varchar, но он получит сохраненное значение 0.

Для хранения данных внутри activity_log таблицы я использовал пакет laravel-activitylog

 $activity = activity()
            ->causedBy(Auth::user())
            ->performedOn($user)
            ->withProperties($properties)
            ->log($changes);
  

Комментарии:

1. Я считаю, что внешний ключ должен быть того же типа, что и первичный ключ, с которым он связан.

2. ДА. Это то же самое, что и первичный ключ.