我试图在 Laravel 中设置一个全局变量,我在__construct()函数中设置,但无法在控制器外部使用它。我应该在哪里设置该变量?
public function __construct()
{
$cat = Categories::get()->first();
}
Run Code Online (Sandbox Code Playgroud)
但我无法访问$cat某些页面中的变量。
如果您想$cat在任何地方访问变量,即在所有控制器和视图中,您应该按如下方式共享它:
protected $cat;
public function __construct()
{
$this->cat = Categories::get()->first();
View::share('site_settings', $this->cat);
}
Run Code Online (Sandbox Code Playgroud)
我假设您正在使用BaseController构造函数。现在,如果您的控制器扩展了这一点BaseController,他们就可以使用 访问该类别$this->cat。
第二种方法:
您还可以尝试使用 Config 类。您需要做的就是在boot方法中添加以下代码app/Providers/AppServiceProvider.php
Config::set(['user' => ['name' => 'John Doe']]);
Run Code Online (Sandbox Code Playgroud)
然后,在项目中的任何位置,您都可以使用以下方式获取值Config::get('user.name');
小智 6
使用服务提供商
https://hdtuto.com/article/laravel-5-global-variable-in-all-views-file
应用程序/提供商/AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->share('siteTitle', 'HDTuto.com');
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Run Code Online (Sandbox Code Playgroud)
在你看来
{{ $siteTitle }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18428 次 |
| 最近记录: |