如何为User.php扩展多个内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为User.php扩展多个内容相关的知识,希望对你有一定的参考价值。

我是编码新手,正在尝试将\TCG\Voyager\Models\UserAuthenticatable一起实现MustVerifyEmail,但我不知道该怎么做。

我已经尝试过User类扩展了\TCG\Voyager\Models\UserAuthenticatable一起实现了MustVerifyEmail,但这对我不起作用。

我创建了2个单独的类,这也不让我满意。


namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail extends \TCG\Voyager\Models\User
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}
答案

您不能在php中扩展两个(或多个)类,只能扩展一个。一个解决方案可能是:

  • [Class A延伸Class B
  • [Class B延伸Class C

这样,Class A也将扩展Class C(通过Class B)。

根据您的情况:

  • [User扩展了\TCG\Voyager\Models\User并实现了MustVerifyEmail
  • [\TCG\Voyager\Models\User扩展了Authenticatable

这是原因之一,特质是在PHP世界中引入的(虽然不一样)。

以上是关于如何为User.php扩展多个内容的主要内容,如果未能解决你的问题,请参考以下文章

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

如何为导航到实现底部导航栏的活动中的上一个片段进行后推操作?

VS代码扩展:如何为分机的设置/配置设置顺序/优先级?

如何为 AWS::ElasticLoadBalancingV2::Listener 设置多个证书

android如何为片段按钮设置OnClickListener

如何为 apollo 客户端生成片段类型?