Мне нужно использовать адрес электронной почты и номер телефона в качестве первичного ключа для модели пользователя в моем приложении Laravel. Поскольку Laravel изначально не поддерживает составные первичные ключи, я нашел обходной путь для его реализации. Однако я сталкиваюсь с проблемами во взаимоотношениях, особенно при использовании пакета ролей и разрешений Spatie. В частности, я получаю ошибку «Преобразование массива в строку». Также возникла проблема со вспомогательной функцией auth()->user(), которая возвращает неожиданный результат.
Вот моя настройка:
Модель пользователя :
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;
use Illuminate\Database\Eloquent\Builder;
class User extends Authenticatable
{
use HasRoles;
public $incrementing = false;
protected $keyType = 'string';
protected $primaryKey = ['email', 'phone_number'];
protected $fillable = ['email', 'phone_number', 'name', 'password'];
}
Проблема:
При доступе к таким связям, как $user->роли, я сталкиваюсь со следующей ошибкой:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from `users` where (`0` = email and `1` = phone_number) and `users`.`deleted_at` is null limit 1)
Подробнее здесь: https://stackoverflow.com/questions/786 ... spatie-rol
Как правильно использовать составные ключи в качестве первичного ключа в Laravel с пакетом ролей и разрешений Spatie? ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Назначение ролей пользователей в Nova с использованием разрешений Spatie Laravel
Anonymous » » в форуме Php - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка дублирования сопоставления для ссылок на составные первичные ключи в Spring Boot JPA
Anonymous » » в форуме JAVA - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-