我编写了一个基于静态文件的页面管理系统,它依赖于每个页面都是以下结构的刀片模板:
@extends('en/frontend/layouts/page_section')
{{-- Page Title --}}
@section('title')
Current Page Title
@parent
@stop
{{-- Page content --}}
@section('pageContent')
...
@stop
因此,我可以使用指向此部分中所有网页的链接进行下拉,我只想抓取@section('title')
中的内容。
我知道这是可能的,我只是不知道如何。
请告知,谢谢。
编辑为了澄清,我想将视图加载到我的控制器中并获取部分标题的值,例如以下伪代码
Class Controller{
// would return string 'Current Page Title' for above example
public function getTitle($viewSlug)
{
$view = View::make($viewSlug);
return $view->section('title');
}
}
答案 0 :(得分:1)
在你的布局中:
<title>@yield('title')</title>
在您看来:
@section('title', 'Your title here')
答案 1 :(得分:0)
我无法找到一种方法来直接使用View甚至刀片引擎返回一个部分的内容。因此,我认为丑陋的暴力方法是唯一的方法,因为这只是在flatfile中使用=&gt;数据库转换器每年只运行几次,因此速度不是必需的。
function getTitle($viewSlug)
{
// get path to view file
$viewPath = \View::make($viewSlug)
->getPath();
$view = \File::get($viewPath);
// flatten view as we dont know how to use regex without this
$view = str_replace("\n", '', $view);
$titleRegex = "/@section\('title'\)(.*)@parent/";
preg_match( $titleRegex, $view, $matches );
return $matches;
}