Мне нужно использовать адрес электронной почты и номер телефона в качестве первичного ключа для модели пользователя в моем приложении 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
Кемеровские программисты php общаются здесь
1719914011
Anonymous
Мне нужно использовать адрес электронной почты и номер телефона в качестве первичного ключа для модели пользователя в моем приложении 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)
Подробнее здесь: [url]https://stackoverflow.com/questions/78696101/how-to-properly-use-composite-keys-as-the-primary-key-in-laravel-with-spatie-rol[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия