我正在尝试为我的应用程序设置全局变量。
我看到了一些建议,自定义配置文件是其中之一。
所以我在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
现在
- 假设你想访问所有的用户数据
用户:美元:所有();
- 假设您想使用用户id 访问特定的用户数据
$ user:发现(1),
应用程序配置是在Laravel引导数据库层之前收集的,因此此时您无法访问底层数据库集合。您最好在应用程序加载之后设置这个配置变量,也许在您的AppServiceProvider
的boot
方法中。
config(['constraints.user_exist', count(AppUser::first())])
另外,如果你只是想检查是否有任何用户模型被持久化到数据库,你可能只是做AppUser::exists()
。
扩展@Dwight答案,我可以通过在AppServiceProvider 方法的boot方法中设置一个新的配置变量来找到我期望的输出
use IlluminateSupportFacadesConfig;
Config::set('user_exist', User::exists());
和访问这个值:
config('user_exist')