【问题标题】:How should I type hint UserModel in a Laravel package?我应该如何在 Laravel 包中输入提示 UserModel?
【发布时间】:2019-03-12 21:17:58
【问题描述】:

我想在包中输入提示用户模型。默认情况下,它是App\User。在频道类中,这样就可以了:

class ChannelExample
{
    public function join(\App\User $user)
    {
        //
    }
}

如果 App 命名空间已更改(例如使用 artisan app:name),它将不再起作用。

显然,在一个包中,不可能知道用户将使用什么命名空间。因此,类型提示不是一个好主意...

键入提示并使包与任何 App 命名空间一起工作的最佳做​​法是什么?

【问题讨论】:

    标签: laravel model namespaces type-hinting


    【解决方案1】:

    使用 laravel 使用的 Contract 作为 Auth 类。

    public function join(Illuminate\Contracts\Auth\Authenticatable $user)
    {
        //
    }
    

    【讨论】:

    • 完全忘记了合同!谢谢
    • @Arcesilas 不客气。是否将其设置为答案?
    • 我必须等待几分钟才能做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2014-02-04
    • 2018-10-04
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多