Как расширить несколько вещей для User.php - PullRequest
0 голосов
/ 24 октября 2019

Я новичок в кодировании, и я пытаюсь расширить \TCG\Voyager\Models\User и Authenticatable вместе MustVerifyEmail, но я не знаю, как это сделать.

Я пробовал класс User extends\TCG\Voyager\Models\User, Authenticatable реализуют вместе 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',
    ];
}

1 Ответ

0 голосов
/ 24 октября 2019

Вы не можете расширить два (или более) класса в 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 extends Authenticatable

Это одна из причин того, что черты были введены в мире PHP (хотя и не совпадают).

...