相关疑难解决方法(0)

PHP覆盖父类特征的特征方法

我正在使用Laravel 5.1但这不是特定于该框架,它更像是一般的PHP问题.

有一个指定了特征的父类:

namespace Illuminate\Foundation\Auth;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements
  AuthenticatableContract,
  AuthorizableContract,
  CanResetPasswordContract {
    use Authenticatable, Authorizable, CanResetPassword;
}
Run Code Online (Sandbox Code Playgroud)

然后我有User类,我关心从那里扩展:

namespace App\Api\V1\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Zizaco\Entrust\Traits\EntrustUserTrait;

class User extends Authenticatable {
  use EntrustUserTrait {
    EntrustUserTrait::can insteadof \Illuminate\Foundation\Auth\Access\Authorizable;
  }
}
Run Code Online (Sandbox Code Playgroud)

EntrustUserTrait有一个can()与冲突法Authorizable特质.但是,Authorizable特征是在父类上,因此会引发错误Required Trait wasn't added to App\Api\V1\Models\User.

我一直在搜索,并且有关于在子类中声明的覆盖特征的大量信息,但我似乎无法找到有关从父类重写特征的任何信息.

php

7
推荐指数
1
解决办法
982
查看次数

标签 统计

php ×1