Вызов функции-члена prepare() в null-святилище laravel mongodb

#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. Вам лучше сообщить об этом разработчикам этого пакета, возможно, вы поступили правильно, но, возможно, и нет, и при обновлении до новой версии вы потеряете это изменение