我正在使用 Laravel 5.6 和 spatie/laravel-permission 2.9 版,还使用 Laravel Passport 作为$guard = 'api'
.
当我尝试在['edit_project', 'add_project' 'delete_project']
此功能的帮助下为角色分配一系列权限时
public function assignPermissions($role, $permissions)
{
$role = Role::findByName($role);
$role->givePermissionTo($permissions);
return $role;
}
Run Code Online (Sandbox Code Playgroud)
但得到错误There is no permission named
edit_project for guard
api`。
我也在 config/auth.php
return [
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect …
Run Code Online (Sandbox Code Playgroud) 我试图从 GA (Google Analytics) 中检索有关我网站的所有信息。我正在使用 laravel 和这个包https://github.com/spatie/laravel-analytics来让我的生活更轻松。但是,该软件包需要来自 GA 的“查看 ID”,我无法帮助自己找到它。我读了这个线程https://support.google.com/analytics/thread/15684521?hl=en,我猜从 GA 4 开始,他们完全从 Web + 应用程序属性中删除了视图列(将创建为默认)(请纠正我)。以前有人遇到过这个问题吗?我在哪里可以找到“查看 ID”?有没有一些文章可以帮助我解决这个问题?关于实现我的目标的更好方法的任何建议?
我安装了 Spatie Permissions 包,并创建了策略来限制使用此包的模型的访问权限。
但是,我在创建一个网关以启用某些角色(例如“管理员”和“内容编辑器”)来访问 Nova 仪表板时遇到了一些困难?
我认为它会涉及 NovaServiceProvider 中的 gate() 函数。这是我尝试过的。
protected function gate()
{
Gate::define('viewNova', function ($user) {
if ($user->hasRole('Admin') || $user->hasRole('Content Editor'))
{
return true;
}
});
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 laravel 包进行谷歌日历 API 集成。在这方面,我只能创建只有参加者的活动。我试过创建组织者,但没有出现。以下是我使用过的代码。此处的组织者名称默认为创建 API 凭据的电子邮件,电子邮件通知也不会发送。
我正在使用的包是"spatie/laravel-google-calendar"
.
谁能告诉我我在这里做错了什么?
Event::create([
'name' => 'Latest Event dsfdsfsdfsdf',
'location' => '800 Howard St., San Francisco, CA 94103',
'description' => 'A chance to hear more about Google\'s developer products.',
'startDateTime' => Carbon\Carbon::now(),
'endDateTime' => Carbon\Carbon::now()->addHour(),
'sendNotifications' => true,
'sendUpdates' => 'all',
'organizer' => array('email' => 'test@gmail.com','displayName' => 'Darshan')
'attendees' => array(
array('email' => 'test@gmail.com','displayName' => 'Darshan', 'organizer' => true),
array('email' => 'darshan@test.com','displayName' => 'Ryan')
)
]);
Run Code Online (Sandbox Code Playgroud) 我正在安装spatie\laravel-backup
软件包。根据说明,我只需要composer require spatie\laravel-backup
识别该软件包并自动安装即可。看起来好像是这样:
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: spatie/laravel-backup
Run Code Online (Sandbox Code Playgroud)
但是,在提供程序中/config/app.php
没有提及backup
任何内容,/config/backup.php
也没有找到预期的配置文件。
我是否需要发出其他命令才能完成自动发现?
我使用Laravel Spatie Backup,安装完成后,首先运行它 $ composer require spatie/laravel-backup
$ composer require spatie/laravel-backup
Using version ^5.6 for spatie/laravel-backup
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
- Installing spatie/temporary-directory (1.1.3): Downloading (100%)
- Installing spatie/db-dumper (2.9.0): Downloading (100%)
- Installing spatie/laravel-backup (5.6.0): Downloading (100%)
spatie/laravel-backup suggests installing guzzlehttp/guzzle (Allows notifications to be sent via Slack)
Writing lock file
Generating optimized autoload files
Run Code Online (Sandbox Code Playgroud)
然后$ php工匠供应商:发布--provider ="Spatie\Backup\BackupServiceProvider"
$ php artisan …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Laravel 5.7 设置 REST API。为了验证身份验证,我使用JWT-auth以及我使用Spatie 的权限和角色。
我的问题:尝试将角色链接到用户时,出现以下错误
Spatie \ Permission \ Exceptions \ RoleDoesNotExist
There is no role named admin.
Run Code Online (Sandbox Code Playgroud)
这就是我尝试为用户分配角色的方式:
$user = User::findOrFail(1);
$user->assignRole('admin');
Run Code Online (Sandbox Code Playgroud)
由于我是 Laravel 的新手,我不确定它是否相关,但是设置 JWT 我不得不将警卫的驱动程序更改config/auth.php
为jwt
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
Run Code Online (Sandbox Code Playgroud)
我看不出我做错了什么。我添加了角色,然后尝试将角色添加到用户。
我在 Laravel 5.8 API 应用程序中添加了Saptie Laravel 权限包。一切正常,当非管理员用户尝试访问管理员特定路由时,我会遇到异常。
但是,默认异常呈现为 HTML 403 User does not have the right roles
。考虑到我在 API 应用程序中使用它,我想为此类异常返回我自己的自定义消息。
我尝试检查是否auth()->user()->hasRole('admin')
仍然获得相同的默认异常页面。这是我的代码
路线
Route::post('products', 'ProductController@store')->middleware('role:super-admin|admin'); // create a new product
Run Code Online (Sandbox Code Playgroud)
控制器方法
if (auth()->user()->hasRole('admin')) {
// create & store the product
$product = Product::create($request->all())
// return new product
$responseMessage = 'Successful operation';
$responseStatus = 200;
$productResource = new ProductResource($product);
return response()->json([
'responseMessage' => $responseMessage,
'responseStatus' => $responseStatus,
'product' => $productResource
]);
} else {
return response()->json([
'responseMessage' => …
Run Code Online (Sandbox Code Playgroud) 我使用这个包:
代码 :
$user=User::find(2);
$user->assignRole('admin');
Run Code Online (Sandbox Code Playgroud)
当我将管理员角色分配给用户时,我正在处理此错误
没有名为
admin
.Spatie\Permission\Exceptions\RoleDoesNotExist 的角色
这是我在 auth.php 中的默认保护:
<?php
return [
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
Run Code Online (Sandbox Code Playgroud)
这是我的角色表:
这是我的 role_has_permission 表
这是我的权限表:
大家!我正在使用 Laravel Spatie 权限包。我可以像这样获得用户的所有分配权限。
$user->getAllPermissions()
Run Code Online (Sandbox Code Playgroud)
但是,我想通过急切加载获得所有权限。也许像这样。
$users = User::with('getAllPermissions')->get();
Run Code Online (Sandbox Code Playgroud)
但这没有用。
我试过
$users = user::with('permissions')->get();
Run Code Online (Sandbox Code Playgroud)
但查询计数与结果相同
$users = user::get();
Run Code Online (Sandbox Code Playgroud)
那么$user->getAllPermissions()
已经是急切加载的查询了吗?
或者是否有任何急切加载的查询?
laravel ×10
spatie ×10
php ×5
laravel-5 ×2
permissions ×2
backup ×1
google-api ×1
jwt ×1
laravel-5.1 ×1
laravel-5.5 ×1
laravel-nova ×1