danmatthews/laraveltwigview

该软件包已被放弃,不再维护。未建议替代软件包。

无缝集成Laravel 4的twig视图引擎

2.0 2015-11-15 17:55 UTC

This package is auto-updated.

Last update: 2019-02-20 19:25:42 UTC


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::toForm::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 %}