danmatthews / laraveltwigview
该软件包已被放弃,不再维护。未建议替代软件包。
无缝集成Laravel 4的twig视图引擎
2.0
2015-11-15 17:55 UTC
Requires
- php: >=5.3.0
- laravel/framework: 4.*
- twig/twig: 2.*
README
允许您将Twig解析添加到Laravel 4,我因为许多原因更倾向于使用twig而不是blade,现在您也可以使用了。
该软件包提供
- 所有 Twig 模板,包括继承。
- 自动模板缓存。
url()和asset()辅助方法,用于快速路由资源和链接。- 一套完整的表单辅助工具。
- 一个
call()方法,允许您在模板内调用任何Laravel 4静态方法(请明智使用!)。
安装
要安装它,只需将软件包添加到您的composer.json文件中即可
{
"require": {
"danmatthews/laraveltwigview": "*"
}
}
然后运行
php composer.phar update
然后将此行添加到app/config/app.php中的providers列表中
'providers' => array( 'Danmatthews\LaravelTwigview\LaravelTwigviewServiceProvider',
然后这就完成了!享受吧。
快速辅助工具
其中还包括两个实用的辅助函数
// Get a URL to a route.
{{ url('route/id') }}
// Get the URL to an asset file (works relative to the public directory).
{{ asset('assets/style.css') }}
表单辅助工具
有关这些工具如何工作的详细信息,请参阅表单 & HTML文档。
{{ formOpen() }} {# Laravel Form::open() function #}
{{ formClose() }} {# Laravel Form::close() function #}
{{ formText() }} {# Laravel Form::text() function #}
{{ formToken() }} {# Laravel Form::token() function #}
{{ formLabel() }} {# Laravel Form::label() function #}
{{ formPassword() }} {# Laravel Form::password() function #}
{{ formFile() }} {# Laravel Form::file() function #}
{{ formSelect() }} {# Laravel Form::select() function #}
{{ formSubmit() }} {# Laravel Form::submit() function #}
{{ formHidden() }} {# Laravel Form::hidden() function #}
call()函数。
这允许您通过模板调用任何静态方法或Laravel的任何Facade,并返回结果。请谨慎使用!
传递给call()函数的第一个参数是类名和方法名,例如URL::to或Form::hidden。
传递给函数的任何其他参数都将传递给被调用的方法。
{# Call the Laravel Cache::has function to check for a value. #} {% if (call('Cache::has', 'my.key')) %} Put the cached values here. {% else %} Tell them that there's nothing stored. {% endif %}
验证错误
Laravel有一个很好的功能,它始终将$errors变量传递到所有视图中。然而,它假设您正在使用Blade语法,因此您可以执行如下操作
{{ $errors->first('email') }}
但是,由于twig不能调用方法,因此此软件包将Laravel错误转换成更有用的形式,其中{{ errors }}仍然是一个数组,但您可以执行如下操作
{# Errors array - printing this directly will throw an exception #} {{ errors }} {# Get a list of the errors for the email field #} {% for error in errors.email %} {{ error }} {% endfor %} {# Get a list of all the errors returned, by field #} {% for error in errors %} {# Print the first error for this field #} {% for fieldError in error %} {{ fieldError }} {% endfor %} {# Loop through all the errors for this field #} {% endfor %}