2016-08-26 28 views
2

我想用Laravel创建一个Web应用程序。如何在laravel中为所有用户保留公共变量

在应用程序中有一个变量X,它可以被每个用户更新,它应该被每个用户看到。

例如,如果X的初始值是1,第一用户将其更改为10,则第二用户应该看到X的值为10。

如何可以存储变量X所以它是为所有用户共同? 到目前为止,我所做的是将其存储在数据库或文件中。但是,有没有其他优雅的方法来做到这一点?

+0

你为什么认为存储到数据库并不优雅? – Mjh

+0

我是否必须为单个变量创建整个表格? – chamathabeysinghe

+0

对于由未知数量的用户更新的内容,是的,您需要允许多次访问单一来源的内容。你可以自由地继续前进,并提出一种不同的方法,但是你不会因为不可能做任何“更优雅”的事情。无论是表格还是文本文件,基本上都是一样的 - 多个用户,单一数据源。使用数据库更容易。祝你好运。 – Mjh

回答

3

你可以把值放入缓存:

Cache::rememberForever('someVar', 'value'); 

然后你就可以retrive它:

Cache::get('someVar'); 

这将为您提供值,直到缓存将清空。

+0

这不是一个好主意,因为您有时需要清除应用程序缓存出于某种原因(实际上,这样做有很多原因),您将丢失数据。 –

+0

是的,当然你会失去它....但保持它的配置(如你所建议的)没有什么可以通过用户之间的变数:) –

+0

如果你保持变量在配置中,你可以从任何用户,从一部分的应用程序。 –

0

您可以使用config()帮助程序使用配置文件来存储此变量。

// Get X variable. 
$x = config('custom.x'); 

您也可以在运行时和save it设置X变量。

在这种情况下,变量将被存储在config/custom.php文件中。

+0

但仍然对新用户的可变X从1开始 – chamathabeysinghe

+0

正如我从你的问题理解,只有一个变量X,所以'config()'是完美的。如果每个用户都有X,则使用带有单独表格的DB或将X保存在'用户'表格中。 –

+0

你的理解是正确的。但使用这种方法它并没有发生 – chamathabeysinghe

相关问题