繁体   English   中英

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

[英]How do I call a model in a custom Laravel 5.3 config file?

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

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

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

这是示例代码:

    return [
       'user_exist'=>1 
    ];

我可以使用config('constraints.user_exist')访问此值

所以我尝试了以下代码:

    return [
       'user_exist'=>count(\App\User::first())
    ];

但它引发以下错误: PHP致命错误:在 项目3的第3308行的project / vendor / laravel / framework / src / Illuminate / Database / Eloquent / Model.php中 调用成员函数connection()

步骤1:示例:假设您要访问配置文件中的用户模型,然后转到配置文件并在app.php中添加以下代码

'user_model' => App\Models\User::class,

步骤2:现在您可以在应用程序中的任何位置使用此user_model。 只需致电

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

现在,

  1. 假设您要访问所有用户数据

$ user :: all();

  1. 假设您要使用用户ID访问特定的用户数据

$ user :: find(1);

在Laravel启动数据库层之前,将收集应用程序配置,因此此时您无权访问基础数据库集合。 在应用程序加载之后,最好在AppServiceProviderboot方法中设置此配置变量。

config(['constraints.user_exist', count(\App\User::first())])

另外,如果您只想检查是否有任何用户模型已持久保存到数据库中,则可以只执行\\App\\User::exists()

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

use Illuminate\Support\Facades\Config;


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

并访问此值:

config('user_exist')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM