我应该如何在 Laravel 包中输入提示 UserModel?

Posted

技术标签:

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

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

class ChannelExample

    public function join(\App\User $user)
    
        //
    

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

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

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

【问题讨论】:

【参考方案1】:

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

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

    //

【讨论】:

完全忘记了合同!谢谢 @Arcesilas 不客气。是否将其设置为答案? 我必须等待几分钟才能做到这一点

以上是关于我应该如何在 Laravel 包中输入提示 UserModel?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 babel 处理的汇总包中删除 use strict

如何将参数传递给 Laravel 包中的控制器操作?

无法检查 klaviyo laravel 包中短信的同意状态

你如何从 Laravel 的包中扩展视图?

Laravel 5.4 - 如何覆盖包中定义的路由?

如何在laravel的全日历包中更改一周的开始日期? [关闭]