如何完成,我们可以在刀片视图中找到类似的内容:
@if (count($records) === 1)
(...)
在分析了bladeCompiler.php文件之后,我可以看到它被转换为PHP,例如这样的方法:
protected function compileIf($expression)
{
return "<?php if{$expression}: ?>";
}
然后由“compileString”方法间接使用,该方法接受并返回一个字符串。
但是呢?我无法在整个项目中找到PHP的“eval”函数调用,所以它是如何完成的?
答案 0 :(得分:1)
在Blade编译PHP代码之后,Laravel将结果放入storage/framework/views/
目录中的缓存文件中。然后直接调用该文件,因此您不需要任何eval()
语句。