如何在Laravel-5.4中的所有刀片文件中使用php变量?

时间:2017-07-13 11:06:16

标签: php html laravel laravel-5.4 blade

如何在所有刀片页面中使用变量?

控制器

public function index1(){

$article='var-1';
return view('index',compact('article');

}

index.blade.php

{{ $article }}
  

index.blade.php的结果

var-1

index2.blade.php

{{ $article }}
  

index2.blade.php的结果

Not Found

我的问题是找到一种方法来使用一个变量并在我的所有* .blade.php文件中使用它。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您可以轻松Pass data to all views。 只需在AppServiceProvider.php方法的boot()中添加以下内容:

 View::share('key', 'value');

答案 1 :(得分:1)

您可以创建一个Composer并在主视图上传递数据。

示例:

class MyComposer
{ 
    public function compose(View $view)
    {
        $article='var-1';    
        $view->with(['article' => article]);
    }
}

并在AppServiceProvider函数中调用boot()类中的类,如下所示:

view()->composer('layouts.app', MyComposer::class);

layouts.app是您的观看中包含的主要观点

如果您需要更多信息,请参阅docs

答案 2 :(得分:0)

您可以使用视图外观的共享方法与应用程序呈现的所有视图共享一段数据。通常,您应该在服务提供商的boot方法中拨打电话进行分享。您可以自由地将它们添加到AppServiceProvider或生成一个单独的服务提供商来容纳它们:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    View::share('key', 'value');
}

/**
 * Register the service provider.
 *
 * @return void
 */
public function register()
{
    //
}
}