语法错误,意外')',期待','或';'在刀片视图中使用@include

时间:2014-10-29 03:14:33

标签: php laravel-4 blade

我有这些观点:

- /app/views/hello.blade.php
- /app/views/bye.blade.php

在控制器中我这样做:

$this->layout->content = \View::make('hello');

hello.blade.php我有这个:

Saying<br>
@include('bye')

bye.blade.php我有这个:

<strong>bye</strong>

使用@include抛出异常:

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_PARSE)
syntax error, unexpected ')', expecting ',' or ';'

/var/www/html/laravel/app/storage/views/706465d8306e75c61fc49b077329c696:
<?php echo $__env->make('bye', array_except(get_defined_vars(), array('__data', '__path')))); ?>

但是,如果我将hello.blade.php的内容更改为此内容,一切正常:

Saying<br>
{{ \View::make('bye')->render() }}
我错过了什么吗?

更新1:

此处https://stackoverflow.com/a/23137421/1424329报告验证和更改Line Separator看起来不是这种情况,因为实际上值为windows eof格式。

更新2:

我的最后一步是审核 framework / src / Illuminate / View / Compilers / BladeCompiler.php 文件,特别是编译@include的函数:

/**
* Compile the include statements into valid PHP.
*
* @param string $expression
* @return string
*/
protected function compileInclude($expression)
{
    if (starts_with($expression, '('))
    {
        $expression = substr($expression, 1, -1);
    }

    return "<?php echo \$__env->make($expression, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>";
}
猜猜是什么?原始来源与我的不同。这是我的compileInclude功能:

protected function compileInclude($expression)
{
    if (starts_with($expression, '('))
    {
        $expression = substr($expression, 1, -1);
    }

    return "<?php echo \$__env->make($expression, array_except(get_defined_vars(), array('__data', '__path')))); ?>";
}

然后,怎么可能这样呢?我将研究这一变化以及如何完成。目前,我想知道如何使用作曲家将原始laravel的源码拉到我的项目中?

0 个答案:

没有答案