Пользовательский первичный ключ Eloquent, сессии и Laravel Nova - PullRequest
0 голосов
/ 06 апреля 2019

Я работаю с несколько сложной структурой базы данных, которую пока не могу обновить для своего клиента. Моя проблема заключается в следующем:

  • В пользовательской таблице есть столбец id и pilot_id. Столбец pilot_id использует структуру ABC1234. Это то, что в настоящее время используется как внешний ключ для связи с другими таблицами.
  • Я обновил модель Laravel User.php, добавив в нее следующее:
    protected $primaryKey = 'pilot_id';

    protected $keyType = 'string';

    public $incrementing = false;

Я добавил вышеупомянутое после возникновения проблем с использованием Laravel Nova. При добавлении, скажем, «сообщения», принадлежащего пользователю, Nova, естественно, вставляла идентификатор записи базы данных пользователей в поле отношений «pilot_id», которое, конечно, ни с чем не совпадало. Приведенный выше код исправил эту проблему.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда по какой-либо причине с записью Nova выполняется какое-либо действие, Nova не захватывает идентифицированных пользователей id / pilot_id и не сохраняет его в сравнении с действием в таблице action_events, тогда как ранее это делалось до внесение вышеуказанных изменений кода.

Прикрепленное изображение таблицы action_events, показывающее user_id как 0

Снимок экрана панели действий Laravel Nova с именем пользователя Nova вместо имени пользователя

Я заметил, что то же самое относится и к таблице базы данных сеансов Laravel. Я не могу использовать сеансы с пользовательским первичным ключом? Использует ли Nova сеансы для записи действий?

Любой совет приветствуется.

...