#php #laravel #mongodb
Вопрос:
- Версия святилища: ^2.12
- Версия Laravel: 8.69.0
- Версия PHP: 7.4
- Драйвер и версия базы данных: MongoDB
Описание:
После того, как система была полностью настроена, все работало должным образом. Но после изменений для создания нового токена $user-gt;createToken('token_base_name')-gt;plainTextToken
продолжайте давать мне Call to a member function prepare() on null
.
personal_access_tokens
таблица существует, но она пуста.
Schema::create('personal_access_tokens', function (Blueprint $table) { $table-gt;morphs('tokenable'); $table-gt;string('name'); # OR $table-gt;string('token_base_name'); -gt;gt; no changes $table-gt;string('token', 64)-gt;unique(); $table-gt;text('abilities')-gt;nullable(); $table-gt;timestamp('last_used_at')-gt;nullable(); $table-gt;timestamps(); });
Комментарии:
1. Похоже, вы не подключились к базе данных
2. я делаю. я могу получать записи из других таблиц. ошибка в
createToken
методе sanctum @RiggsFolly
Ответ №1:
я исправил это, но мне пришлось изменить файлы, не относящиеся к проекту.
в vendor/laravel/sanctum/src/PersonalAccessToken.php
для MongoDB должен быть use use JenssegersMongodbEloquentModel
PersonalAccessToken.php
быть как :
use JenssegersMongodbEloquentModel; use LaravelSanctumContractsHasAbilities; class PersonalAccessToken extends Model implements HasAbilities { ...... }
Комментарии:
1. Вам лучше сообщить об этом разработчикам этого пакета, возможно, вы поступили правильно, но, возможно, и нет, и при обновлении до новой версии вы потеряете это изменение