Rob*_*Rob 4 php laravel laravel-5 laravel-validation
我有一个这样的规则:
Rule::exists('tokens', 'key')
->where(function ($q) {
$q->where('state', 'unused');
})
Run Code Online (Sandbox Code Playgroud)
但是我正在尝试访问实际的 Token 模型范围,所以我可以只做->unused()而不是重复我的查询。
Rule::exists(\App\Models\Token::class, 'key')
->where(function ($q) {
$q->unused();
})
Run Code Online (Sandbox Code Playgroud)
它似乎获得了一个查询构建器,但不是来自Token模型。
我已经尝试了一些变体,将Token模型作为参数而不是tokens表名传入,但它只会为call to undefined method.
有没有办法做到这一点?
正如你已经注意到的那样;您可以访问查询构建器而不是模型。您可以做的是新建一个模型并直接使用范围。
use App\Models\Token;
Rule::exists('tokens', 'key')
->where(function ($q) {
(new Token)->scopeUnused($q);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1445 次 |
| 最近记录: |