with
是fields
,items
,tab
,step
中的通用方法。
fields
和items
如果不使用with
方法,需要配合fieldsEnd
、itemsEnd
結尾。
使用with
可省略結尾方法(fieldsEnd、
itemsEnd`),使程式碼層次更分明。
tab
,step
不需要顯式呼叫end
方法,但也支援with
方法。
有3種使用方式:
- 作為可變引數:
with($field1, $field2, $field3, $fieldN, );
- 作為陣列元素[作為1的折衷方案,可變引數最後跟隨一個,號,在低版本php中會報錯,放在陣列中可避免]
with([$field1, $field2, $field3, $fieldN, ]);
- 作為匿名方法中的語句
with(function($form){$field1;$field2;$field3;$fieldN;});
以下程式碼可正常執行,其中僅使用了tab
、fields
,step
、items
也類似。
$form->tab('tab1')->with(
function () use ($form) {
$form->fields('left1', '', 6)->size(0, 12)->showLabel(false)->with(
function () use ($form) {
$form->text('name', '名稱')->required()->maxlength(55);
$form->tags('keyword', '關鍵字');
$form->textarea('description', '摘要')->maxlength(255);
}
);
$form->fields('right1', '', 6)->size(0, 12)->showLabel(false)->with(
$form->text('name', '名稱')->required()->maxlength(55),
$form->tags('keyword', '關鍵字'),
$form->textarea('description', '摘要')->maxlength(255),//注意最後這個,號在低版本php中會報錯,刪除或者把fields放在[]中作為一個陣列
);
}
);
$form->tab('tab2')->with(
//如果不想使用use($from),那可以在匿名方法傳入引數.
//並宣告型別:\tpext\builder\common\Form(方便程式碼編輯器提示).
//最好是在php檔案頭部引入: use tpext\builder\common\Form;
//然後可簡寫為:function (Form $_form){/* code */}
//以下程式碼中 $_form 和 $form 是同一個東西,實際中使用其中一種方式即可。
function (\tpext\builder\common\Form $_form) use ($form) {
//left2 start
$_form->fields('left2', '', 7)->showLabel(false)->size(0, 12);
$_form->number('stock', '庫存')->default(99);
$form->number('click', '點選量')->default(1);
$form->number('sales_sum', '銷量')->default(0);
$form->fieldsEnd();
//left2 end
//
$form->fields('right2', '', 5)->size(0, 12)->showLabel(false)->with(
[
$_form->text('market_price', '市場價'),
$form->text('cost_price', '成本價'),
]
);
}
);
本作品採用《CC 協議》,轉載必須註明作者和本文連結