0
ラーベールテスト環境では、ラーベールゲートは機能しません。 phpunit.xml
ファイルでは、sqlite
接続と:memory:
をデータベースとして使用しています。ラーベールゲートエラー、そのようなテーブルがありません:パーミッション(SQL:select from * "permissions")
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
AuthServiceProvider
では、以下のコードでゲートを定義しています。
public function boot(GateContract $gate)
{
$this->registerPolicies($gate);
foreach($this->getPermissions() as $permission) {
$gate->define($permission->name, function($user) {
$user->hasRole($permission->roles);
});
}
}
protected function getPermissions() {
return Permission::with('roles')->get();
}
これまでにphpunit
を実行しました。エラーno such table: permissions (SQL: select * from "permissions")
が表示されます。
テスト環境では、移行後にゲートを定義する方法を教えてください。