如何在自定义Laravel 5.3配置文件中调用模型?



我正在尝试为我的应用程序设置全局变量。

我看到了一些建议,自定义配置文件是其中之一。

所以我在config目录下创建了一个constraints.php文件

下面是示例代码:

    return [
       'user_exist'=>1 
    ];

我可以使用config('constraints.user_exist')

访问这个值

所以我试了下面的代码:

    return [
       'user_exist'=>count(AppUser::first())
    ];

但是会抛出以下错误:PHP致命错误:在中调用成员函数connection()project/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 3308

第一步:示例:假设您想在配置文件中访问用户模型,然后转到配置文件并在app.php

中添加以下代码
'user_model' => AppModelsUser::class,

步骤2:现在,您可以在应用程序的任何地方使用这个user_model。简单地调用

$user = config('app.user_model'); // app in file name

现在

  1. 假设你想访问所有的用户数据

用户:美元:所有();

  • 假设您想使用用户id
  • 访问特定的用户数据

    $ user:发现(1),

    应用程序配置是在Laravel引导数据库层之前收集的,因此此时您无法访问底层数据库集合。您最好在应用程序加载之后设置这个配置变量,也许在您的AppServiceProviderboot方法中。

    config(['constraints.user_exist', count(AppUser::first())])
    

    另外,如果你只是想检查是否有任何用户模型被持久化到数据库,你可能只是做AppUser::exists()

    扩展@Dwight答案,我可以通过在AppServiceProvider 方法的boot方法中设置一个新的配置变量来找到我期望的输出

    use IlluminateSupportFacadesConfig;
    
    Config::set('user_exist', User::exists());
    

    和访问这个值:

    config('user_exist')
    

    相关内容

    • 没有找到相关文章

    最新更新