【问题标题】:Implement interface and trait into User model在用户模型中实现接口和特征
【发布时间】:2019-05-21 15:30:07
【问题描述】:

我已将以下软件包安装到我的应用程序中,以便用户能够关注和取消关注其他用户。 https://github.com/hypefactors/laravel-follow

在文档中它指出:

准备 Eloquent 模型 允许一个实体被跟随或 跟随其他实体,相应的模型必须实现 接口并使用特征。

以下是我们为用户和公司实体执行此操作的方式,用户将在其中 能够关注一家公司,该公司将能够成为 跟随:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Hypefactors\Laravel\Follow\CanFollow;
use Hypefactors\Laravel\Follow\Contracts\CanFollowContract;

class User extends Model implements CanFollowContract
{
    use CanFollow;
}

但是我的用户模型看起来像这样:

<?php

namespace App;

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



class User extends Authenticatable
{

我尝试以各种方式包含文件,但没有成功。我认为这与我的用户模型类有关,如下所示: 类用户扩展可验证 而不是这个: 类用户扩展模型 谁能指出我正确的方向?

如果我这样做:

<?php

namespace App;

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

use Hypefactors\Laravel\Follow\CanFollow;
use Hypefactors\Laravel\Follow\Contracts\CanFollowContract;


class User extends Authenticatable implements CanFollowContract
{
    use Notifiable;
    use Uuids;
    use CanFollow;

我收到以下错误:

未找到特征“Hypefactors\Laravel\Follow\CanFollow”

【问题讨论】:

  • 文件vendor/hypefactors/laravel-follow/src/Traits/CanFollow.php是否存在?
  • 是的,这是我的供应商目录的样子:ibb.co/yRMpK84
  • 你能做一个composer dump-autoload 并删除bootstrap/cache 中的.php 文件吗?
  • 所以我删除了 bootstrap/cache 目录中的 packages.php 和 services.php 文件,然后运行 ​​composer dump-autoload 但我仍然收到同样的错误:Trait 'Hypefactors\Laravel\Follow\CanFollow '未找到
  • laracasts.com/discuss/channels/laravel/… 包含 Illuminate\Foundation\Auth\User 中的接口和特征可以解决这个问题吗?

标签: php laravel-5.8


【解决方案1】:

我决定将包更改为:https://github.com/overtrue/laravel-follow,它按预期工作得很好。

@ceejayoz 感谢您的建议

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多