Laravel刀片模板无法正常工作 - 调用未定义的函数Illuminate \ View \ Compilers \ token_get_all()

时间:2014-07-29 23:55:47

标签: php laravel laravel-4

我刚刚安装了Laravel 4.2.7,并且在编译刀片模板时遇到了一些问题。

所以Laravel在HomeController

中附带了这个功能
public function showWelcome()
{
    return View::make('hello');
}

我决定在hello视图中添加一些变量:

public function showWelcome()
{
    $data['test'] = 'hello world!';
    return View::make('hello', $data);
}

然后......将文件名从hello.php更改为hello.blade.php,因为我想打印出变量test

一旦我刷新了Laravel附带的“你已经到达”页面的默认页面,它给了我一个例外:

Symfony\Component\Debug\Exception\FatalErrorException thrown with message "Call to undefined function Illuminate\View\Compilers\token_get_all()"

Stacktrace:
#1 Symfony\Component\Debug\Exception\FatalErrorException in /Applications/AMPPS/www/weinternship/laravel/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php:118
#0 Illuminate\Exception\Handler:handleShutdown in <#unknown>:0

我曾与Laravel 4.1.28合作过,之前从未遇到过这个问题。我做错了什么?

修改

在我的hello.blade.php

的内容中

我刚刚在<div class="welcome'></div>

中插入了{{$ test}}

2 个答案:

答案 0 :(得分:2)

您的php版本未使用tokenizer编译。

http://us.php.net/manual/en/ref.tokenizer.php

您可能正在运行旧版本的PHP。这些函数在PHP 4.2.0中引入:

http://php.net/manual/en/function.token-get-all.php

答案 1 :(得分:0)

我收到同样的错误,在打开php.ini文件时,我发现tokenizer扩展已被禁用。

extension=tokenizer.so

启用它,重启apache并且运行正常。

P.S我也遇到了Open ssl错误,我也启用了该扩展名:

extension=openssl.so