Вы можете проверить раздел документации Совместное использование всех просмотров документации.В нем говорится:
Совместное использование данных со всеми представлениями
Иногда вам может потребоваться поделиться частью данных со всеми представлениями, отображаемыми вашим приложением.Вы можете сделать это, используя метод share
вида фасада.Как правило, вы должны совершать звонки на share
в методе boot
поставщика услуг.Вы можете добавить их в AppServiceProvider
или создать отдельного поставщика услуг для их размещения:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
View::share('key', 'value');
}
}
Как видите, это полезно для обмена данными между несколькими представлениями.Конечно, вы можете сделать это в вашем случае (документация очень ясна), но если вы собираетесь делать некоторые условные вещи, почему бы не вернуть данные в представление вместо этого?Вот так:
public $data;
public function __construct()
{
if ($condition)
{
$this->data = 'Data for first option';
}
else if ($condition_two)
{
$this->data = 'Some other data';
}
else
{
$this->data = 'Another amount of data';
}
}
Затем в методе внутри контроллера:
public function myMethod()
{
// some stuff
return view('my_view')->withData($this->data);
}