【问题标题】:PHP Templating in Laravel 4Laravel 4 中的 PHP 模板
【发布时间】:2014-04-04 02:16:26
【问题描述】:

我刚刚全新安装了 laravel 4.1。我不是模板语言的忠实粉丝,所以我更喜欢使用常规 php 进行模板。但是,我确实喜欢 laravel 提供的继承和部分的想法。我见过使用这样的部分的例子:

<?php Section::start('content'); ?>
    Test Content
<?php Section::stop(); ?>

但是,当我在我的安装中尝试这个时,我得到:

Class 'Section' not found

当我尝试使用刀片模板时,它可以正常工作,但不能使用常规的 php 模板。我根本找不到任何关于常规 php 模板的文档,我只能找到关于刀片的文档。这在新版本中不可用还是已更改?任何链接或帮助将不胜感激,因为谷歌搜索不断提出如何使用刀片模板的结果。

【问题讨论】:

    标签: php templates laravel laravel-4


    【解决方案1】:

    你正在寻找View实际上是Illuminate/View/Environment.php

    <!-- layuts/mastrer.php -->
    
    <body>
        <?php echo View::yieldContent('content'); ?>
    </body>
    
    <!-- views/home/index.php -->
    
    <?php View::startSection('content'); ?>
    
        <?php echo 'Welcome ' . $name; ?>
    
    <?php View::stopSection(); ?>
    

    BaseController 类:

    protected $layout = 'layouts.master';
    
    protected function setupLayout()
    {
        if ( ! is_null($this->layout))
        {
            $this->layout = View::make($this->layout);
        }
    }
    

    HomeController 类:

    public function ShowHome()
        $this->layout->title = 'Laravel -> Lout';
        $this->layout->content = View::make('home.index', ['name' => 'Sheikh Heera']);
    }
    

    但是,如果您使用这些功能,那么为什么不直接使用 blade 呢?

    【讨论】:

    • 感谢您的帮助。我现在能够让它工作,但是我唯一无法弄清楚的是在视图中扩展布局。前任。使用刀片它将是 @extends('layous.default') 但通过该类查看它似乎并不支持它与 php 引擎。我看到你可以在控制器中做到这一点,但我更愿意在模板中控制它。而且我不想使用刀片,因为我宁愿让我的模板分开。如果我要转到另一个框架,我可以保留模板,然后将数据发送到刀片可能无法发送的地方。
    • 这根本不可能:-)
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2013-11-07
    • 2013-06-27
    • 2014-02-07
    • 1970-01-01
    • 2013-07-21
    • 2013-11-03
    • 2017-04-03
    相关资源
    最近更新 更多