Laravel 刀片模板不起作用 - 调用未定义的函数 Illuminate\View\Compilers\token_get_all()

Posted

技术标签:

【中文标题】Laravel 刀片模板不起作用 - 调用未定义的函数 Illuminate\\View\\Compilers\\token_get_all()【英文标题】:Laravel blade template is not working - Call to undefined function Illuminate\View\Compilers\token_get_all()Laravel 刀片模板不起作用 - 调用未定义的函数 Illuminate\View\Compilers\token_get_all() 【发布时间】:2014-07-29 23:55:47 【问题描述】:

我刚安装了 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 内容中

我刚刚在 &lt;div class="welcome'&gt;&lt;/div&gt; 中插入了 $test

【问题讨论】:

hello.blade.php的内容添加到问题中 你运行的是什么版本的 PHP? 试过运行 PHP 5.4 和 5.5 还是不行 【参考方案1】:

您的 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

【讨论】:

PHP 5.4 和 5.5 都试过了,还是不行 :( 尝试运行 function_exists('token_get_all') 如果它返回 false 那是你的问题并且你的 php 安装有问题 看来您需要重新安装 php.ini 文件。如果您使用的是 Mac,我建议您使用 Homebrew:brew.sh 如果您使用的是 Windows,我建议您使用包管理器【参考方案2】:

我遇到了同样的错误,在打开 php.ini 文件时,我发现标记器扩展被禁用。

extension=tokenizer.so

启用它,重新启动 apache,它就可以工作了。

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

extension=openssl.so 

【讨论】:

以上是关于Laravel 刀片模板不起作用 - 调用未定义的函数 Illuminate\View\Compilers\token_get_all()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8重定向回来,消息在刀片模板中不起作用

LARAVEL 5.8:窗口滚动,滚动在刀片模板中不起作用

laravel 刀片模板中的覆盖部分抛出未定义的变量错误

刀片模板中的Laravel重定向问题

使用未缓存/未编译的 laravel 刀片模板

Vuejs 组件未显示在我的 laravel 刀片中