stuartcusackie / statamic-blade-view-data
从任何blade视图或组件中访问Statamic变量。
1.1.14
2022-10-18 13:14 UTC
Requires
- php: ^8.0
- laravel/framework: ^8.0 || ^9.0
- statamic/cms: ~3.3.12
README
用于从Blade组件内部访问Statamic数据的门面。此包提取传递给所选模板的Statamic数据,并将其添加到可以在应用程序中任何地方访问的单例中。
请勿使用
自从编写此包以来,Statamic的开发者找到了访问Statamic数据的一种更好的方法。在任何控制器或blade组件中使用Cascade门面
use Facades\Statamic\View\Cascade;
$cascade = Cascade::instance()->toArray();
$page = $cascade['page'];
$globalAnalytics = $cascade['analytics'];
安装
composer require stuartcusackie/statamic-blade-view-data
用法
该包提供Laravel门面。它有几个方法
- StatData::context() - 返回所有视图数据
- StatData::page() - 返回Statamic页面对象
- StatData::site() - 返回Statamic站点对象
- StatData::globalSet('social') - 返回特定的全局集
在blade视图中使用它
StatData::globalSet('social')['facebook_url']
在类中使用它需要正斜杠
$page = \StatData::page();
自定义路由
在web.php中设置的自定义路由,并使用自定义控制器,将不会初始化Statamic数据。
如果您在自定义控制器中返回视图,则可以像这样初始化blade数据
View::composer('pages/custom-view', function ($view) {
\StatData::init($viewData);
});
return (new \Statamic\View\View)
->template('pages/custom-view')
->layout('layouts/app')
->with(['page' => $page]);