如何在Laravel中使用Sentry和Ardent?

6
在我的模型中,我使用Ardent进行自验证,但我有一个需要使用Sentry进行身份验证的模型。因此,我需要扩展Ardent和Sentry,但是我不能这样做,因为PHP中没有多重继承。我尝试使用traits来实现此目的,但是traits无法扩展。我非常需要这两个类,有没有办法可以同时使用它们?

你是否已经成功使用了Sentry和Ardent? - Javier Enríquez
@JavierEnríquez 不,最终我们只使用了Sentry,并以常规方式进行验证。一个可能的解决方法是找到Sentry的供应商文件夹,并使其扩展Ardent。 - totymedli
1个回答

1
我认为最好的方法是直接从Sentry文件夹中复制整个User模型: 例如,src/Cartalyst/Sentry/Users/Eloquent/User.php 将该文件复制到您的models目录中,然后使其扩展Ardent而不是Model,因为Ardent已经扩展了Model。
这样应该可以工作--虽然可能需要一些复杂的修复来使其工作,我正在使用Toddish/Verify而不是Sentry进行类似的操作。

它抛出错误 Cartalyst\Sentry\Users\Eloquent\User::validate() 的声明应与 LaravelBook\Ardent\Ardent::validate(array $rules = Array, array $customMessages = Array) 兼容 - Muflix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接