lkozlova / widgets
该包最新版本(1.0.2)没有可用的许可证信息。
Laravel的简单Widgets包
1.0.2
2020-01-21 08:23 UTC
Requires
- php: >=7.1.3
- illuminate/support: 5.6.*|5.7.*|5.8.*|6.*
- illuminate/view: 5.6.*|5.7.*|5.8.*|6.*
This package is auto-updated.
Last update: 2024-09-21 21:04:31 UTC
README
该包目前正在开发中!!!
这是Laravel的简单Widgets包。它允许使用面向对象(OOP)创建界面元素。
HtmlWidget
它是用于创建HTML的Widget。
生成标签
要生成HTML标签,您应该调用HtmlWidget类的tag()方法
HtmlWidget::tag('p');
然后我们得到这个HTML
<p></p>
tag()可以获取配置数组,允许添加一些属性和值
HtmlWidget::tag('button',[ 'params' => [ 'class' => 'btn', ], 'value' => 'Ok', ]);
生成的HTML
<button class="btn">Ok</button>
组合标签
Widgets返回属于集成Laravel类Illuminate\Support\HtmlString的字符串值。然后您可以将其放置在另一个Widget的值中。例如
{{HtmlWidget::tag('form', [
'params' => [
'class' => 'form-inline',
'method' => 'post',
'action' => '/users/login',
'enctype' => 'multipart/form-data',
],
'value' => csrf_field().
HtmlWidget::tag('input', [
'params' => [
'name' => 'password',
]
]).
HtmlWidget::tag('button', [
'params' => [
'type' => 'submit',
'class' => 'btn',
],
'value' => 'Login'
]),
])}}
生成的HTML
<form class = "form-inline" method = "post" action = "/users/login" enctype = "multipart/form-data"> <input type="hidden" name="_token" value="tocken will be here"> <input name = "password"></input> <button type = "submit" class = "btn">Login</button> </form>
如您所注意到的,Widgets通过连接符号'.'连接。
简单标签
如果您不想创建闭合标签,或者使用组合标签对您来说不划算,您可以向方法传递false参数
{{HtmlWidget::tag('form', [
'params' => [
...
...
],
],false)}}
@csrf
...
...
{{HtmlWidget::tag('/form')}}
TableWidget
这个Widget允许使用您的模型和集合创建表格。这个Widget非常简单和灵活。它不限制您使用Laravel的模型和集合,为您提供使用自己的对象的机会。要创建表格,请使用table()方法
{{TableWidget::table([
'params' => [
'class' => 'table table-striped',
],
'columns' => [
'id',
'status',
'error_message',
'event',
],
], $collection)}}
要生成表格,您应该将集合的属性传递到配置数组中。列将以这些属性命名
<table class = "table table-striped"> <thead> <tr> <th>id</th> <th>status</th> <th>error_message</th> <th>event</th> </tr> </thead> <tbody> ... Your collections values ... </tbody> </table>
如果您想以其他名称命名列,您可以这样做
{{TableWidget::table([
'columns' => [
'id',
'status',
[
'label' => 'Error',
'attribute' => 'error_message',
],
'event',
],
], $collection)}}
您还可以添加任何字符串,而不是属性,甚至包含属性的字符串。这在您想在表格中使用某些Widget时非常有用。为此,您应该使用value而不是attribute,并传递数组value => [(string)$value, (array)$attributes]。您写入的动态变量如下:.'attribute'。
查看示例
{{TableWidget::table([
'columns' => [
[
'label' => '',
'value' => [
HtmlWidget::tag('input', [
'params' => [
'type' => 'checkbox',
'value' => ".'id_value'"
]
]),
[
'id_value' => 'id',
]
]
],
'status',
[
'label' => 'Error',
'attribute' => 'error_message',
],
'event',
],
], $collection)}}