我刚开始和Laravel合作.我需要重写几年前制作的整个系统,使用Laravel 4作为基础框架.在我的旧系统中,我使用一个带有一些常量声明的constant.php文件,以及一个包含大量数组的globals.php文件(例如,类别状态,事件类型,lang等).通过这样做,我可以使用类似的东西
foreach ( $langs as $code => $domain ) {
// Some stuff
}
Run Code Online (Sandbox Code Playgroud)
我应用中的任何地方.
我的问题是,如何以所谓的"laravel方式"存储该信息.我尝试使用某种对象来存储此信息,将其设置为服务并为其创建一个外观:
应用程序/库/项目/ Constants.php
namespace PJ;
class Constants {
public static $langs = [
'es' => 'www.domain.es',
'en' => 'www.domain.us',
'uk' => 'www.domain.uk',
'br' => 'www.domain.br',
'it' => 'www.domain.it',
'de' => 'www.domain.de',
'fr' => 'www.domain.fr'
];
}
Run Code Online (Sandbox Code Playgroud)
应用程序/库/项目/ ConstantsServiceProvider.php
namespace PJ;
use Illuminate\Support\ServiceProvider;
class ConstantsServiceProvider extends ServiceProvider {
public function register() {
$this->app->singleton('PJConstants', function() {
return new Constants;
});
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/库/项目/ ConstantsFacade.php
namespace PJ; …Run Code Online (Sandbox Code Playgroud) 我怎样才能在Laravel 5中制作全局变量,这些变量将在所有Blade模板中提供?
我正在Laravel 5中构建一个小型CRUD应用程序.我有一些应用程序范围的设置,如"SiteTitle"和"BaseURL"我想让我的管理员能够从UI进行更改.我的整个应用程序使用base.blade.php模板,该模板扩展到不同的视图+控制器,这是最有可能使用这些设置的地方.
就像是:
<h1><a href="#">{{ $setting->SiteName }}</a></h1>
Run Code Online (Sandbox Code Playgroud)
我将设置存储在数据库表中,并与Setting.php模型绑定.
我宁愿不是我的控制器方法的每个人都在查询数据库中的这些设置,只是将它们传递给模板base.blade.php.
创建某种类型的全局设置变量的最佳方法是什么?我可以在整个应用程序中重用它?
提前致谢!
我试图在 Laravel 中设置一个全局变量,我在__construct()函数中设置,但无法在控制器外部使用它。我应该在哪里设置该变量?
public function __construct()
{
$cat = Categories::get()->first();
}
Run Code Online (Sandbox Code Playgroud)
但我无法访问$cat某些页面中的变量。