问题标签 [laratrust]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
13 浏览

eloquent - Illuminate\Database\Eloquent\Relations\BelongsToMany::save():参数 #1 ($model) 必须是 Illuminate\Database\Eloquent\Model 类型,给定 null

我正在尝试使用 laravel 微风开发一个简单的自由职业平台。当我尝试在自由职业者和管理员之间实现按摩功能时(工作由管理员而不是客户发布)我收到此错误。

Illuminate\Database\Eloquent\Relations\BelongsToMany::save():参数 #1 ($model) 必须是 Illuminate\Database\Eloquent\Model 类型,给定 null,在 C:\Users\user\freelance_graphicwebefef\app\ 中调用第 23 行的 Http\Controllers\ThreadController.php

线程模型

用户模型

线程控制器

PHPStorm 在第 22 行给了我这个消息

提供了 '\Illuminate\Database\Eloquent\Model'、'\Illuminate\Contracts\Auth\Authenticatable' 类型的预期参数

Thread Table 和 thread_users 表显示了一些记录。

0 投票
0 回答
25 浏览

laravel - Laratrust 中间件和刀片指令从 Profile not auth()->user() 检查

我开始了解 Laravel 框架,并在测试应用程序中使用 santigarcor/laratrust 包来实现角色和权限。对于该项目,我假设一个用户可能有多个配置文件(一对多),并分配了角色和权限。登录后,用户会在会话中自动分配一个默认配置文件,他可以稍后更改。例如:用户 $user 有一个配置文件:经理、编辑和读者。每个配置文件都有不同的角色/权限。默认配置文件是编辑器。登录后,我保存到 Session::put('profile', $user->defaultProfile). 如果我想检查角色,例如在控制器中,我可以这样做:

但是如果我想使用中间件或刀片指令@role(),该怎么做呢@permission()@ability()最佳实践方式?是否可以轻松映射这些方法,以便它们检查的不是用户 (auth()->user()) 而是他选择的配置文件?或者我应该编写自定义中间件和刀片指令?