我有这样的规则:
Rule::exists('tokens', 'key')
->where(function ($q) {
$q->where('state', 'unused');
})
但是我试图访问实际的令牌模型范围,所以我只能->unused()
而不重复我的查询。
Rule::exists(\App\Models\Token::class, 'key')
->where(function ($q) {
$q->unused();
})
它似乎是获取查询构建器,但不是来自Token
模型。
我尝试将Token
模型作为参数而不是tokens
表名称尝试了一些变体,但它只会引发call to undefined method
的错误。
有没有这样做?
答案 0 :(得分:1)
你已经注意到了;您可以访问查询构建器而不是模型。您可以做的是新建模型并直接使用范围。
use App\Models\Token;
Rule::exists('tokens', 'key')
->where(function ($q) {
(new Token)->scopeUnused($q);
});