я запускаю laravel тестирование phpunit, но всегда говорится, что таблица не найдена при использовании сервисного контейнера, я использую соединение sqlite, база данных ": memory:"
<?php
class AuthServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerAllModule();
//
}
public function registerAllModule()
{
$acl = resolve(\Gdevilbat\SpardaCMS\Modules\Role\Repositories\Contract\AuthenticationRepository::class);
if(!Schema::hasTable('module'))
return true;
$modules = Module_m::get();
foreach ($modules as $module)
{
if(!empty($module->scope))
{
foreach ($module->scope as $key => $value)
{
$authentication = $value.'-'.$module->slug;
Gate::define($authentication, function ($user, $model = null) use ($value, $module, $modules, $acl){
return $acl->getAuthenticationRule($value, $module, $modules, $model, $user);
});
}
}
}
}
}
<?php
/**
* Class EloquentCoreRepository
*
* @package Gdevilbat\SpardaCMS\Modules\Core\Repositories\Eloquent
*/
class SingleBrandAuthentication implements \Gdevilbat\SpardaCMS\Modules\Role\Repositories\Contract\AuthenticationRepository
{
public function getAuthenticationRule(string $value, \Gdevilbat\SpardaCMS\Modules\Core\Entities\Module $module, \Illuminate\Database\Eloquent\Collection $modules, \Illuminate\Database\Eloquent\Model $model = null, \App\User $user): bool
{
$role_user = RoleUser_m::with(['role.modules' => function($query) use ($module){
$query->where(Module_m::getTableName().'.'.Module_m::getPrimaryKey(), $module->getKey());
}])
->where('user_id', $user->id)
->first();
if(empty($role_user))
abort(403, "User Doesn't Have Role");
$scope = $role_user->role->hasAccess($value, $module->slug, $modules);
if(!empty($model))
{
if(!in_array($value, config('role.exclude_permission_id')))
return $scope || ($user->id == $model->created_by);
}
return $scope;
}
}
Я всегда получаю сообщение об ошибке типа «роль_пользователя не найдена». Это происходит только тогда, когда я использую модель в сервисном контейнере.
Я тестирую другой контроллер, использующий ролевую модель, и проблем нет, но когда я использую модель в сервисном контейнере. всегда говорилось, что таблица не найдена
помогите мне, пожалуйста