relations widgets for backpack
3.3.1
composer require izica/relations-widgets-for-backpack
Relation_panel
name
- ชื่อของความสัมพันธ์label
- ฉลากแผงbackpack_crud
- URL ของกระเป๋าเป้สะพายหลังbuttons
(เป็นทางเลือก) - ตั้ง false
เพื่อซ่อนปุ่มการทำงานทั้งหมดbutton_show
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนbutton_edit
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนvisible
(ไม่จำเป็น) - ปิดเพื่อซ่อนหรือแสดงแผงfields
(ไม่บังคับ) - อาร์เรย์ของฟิลด์ โดยค่าเริ่มต้นจะได้รับคอลัมน์จาก fillable
ในโมเดลname
- ชื่อlabel
- สำหรับฟิลด์closure
- ใช้การปิดแทนฟิลด์ชื่อvisible
(ไม่จำเป็น) - ปิดเพื่อซ่อนหรือแสดงแผงความสัมพันธ์_ตาราง
name
- (จำเป็น) ชื่อความสัมพันธ์label
- ฉลากแผงrelation_attribute
- (เป็นทางเลือก) ใช้สำหรับส่งชื่อพารามิเตอร์ URL สำหรับ button_createsearch
- (เป็นทางเลือก) closure
เปิดใช้งานการป้อนข้อมูลการค้นหาper_page
- (ไม่บังคับ) เปิดใช้งานการแบ่งหน้า null
ตามค่าเริ่มต้นbackpack_crud
- URL ของกระเป๋าเป้สะพายหลังbuttons
(เป็นทางเลือก) - ตั้ง false
เพื่อซ่อนปุ่มการทำงานทั้งหมดbutton_create
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนbutton_show
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนbutton_edit
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนbutton_delete
(ไม่บังคับ) - ตั้ง false
เพื่อซ่อนvisible
(ไม่จำเป็น) - closure
เพื่อซ่อนหรือแสดงแผงcolumns
(เป็นทางเลือก) - array
คอลัมน์ โดยค่าเริ่มต้นรับคอลัมน์จาก fillable
ในโมเดลname
- ชื่อlabel
- สำหรับฟิลด์closure
- ใช้ closure
แทนฟิลด์ชื่อเพื่อส่งค่า belongsTo
hasOne
use Backpack CRUD app Library Widget ;
protected function setupShowOperation ()
{
Widget:: add ([
' type ' => ' relation_panel ' ,
' name ' => ' account_contact ' ,
' label ' => ' Account contact info ' ,
' backpack_crud ' => ' accountcontact ' ,
' visible ' => function ( $ entry ){
return $ entry -> is_public_person ;
},
' buttons ' => false ,
' fields ' => [
[
' label ' => ' Birthdate ' ,
' closure ' => function ( $ entry ){
return date ( ' d.M.Y ' , $ entry -> birthdate );
}
],
[
' label ' => ' Contact phone ' ,
' name ' => ' contact_phone ' ,
],
[
' label ' => ' Contact email ' ,
' name ' => ' contact_email ' ,
],
[
' label ' => ' Address ' ,
' name ' => ' address.name ' ,
' visible ' => function ( $ entry ){
return !! $ entry -> address ;
}
],
],
])-> to ( ' after_content ' );
}
hasMany
protected function setupShowOperation ()
{
Widget:: add ([
' type ' => ' relation_table ' ,
' name ' => ' order_cargos ' ,
' label ' => ' Order cargo list ' ,
' backpack_crud ' => ' ordercargo ' ,
' visible ' => function ( $ entry ){
return $ entry -> order_cargos -> count () > 0 ;
},
' search ' => function ( $ query , $ search ) {
return $ query -> where ( ' name ' , ' like ' , " % { $ search } % " );
},
' relation_attribute ' => ' order_id ' ,
' button_create ' => true ,
' button_delete ' => false ,
' columns ' => [
[
' label ' => ' Type ' ,
' name ' => ' order_cargo_type.name ' ,
],
[
' label ' => ' Weight ' ,
' name ' => ' weight ' ,
],
[
' label ' => ' Value, $ ' ,
' closure ' => function ( $ entry ){
return "{ $ entry -> value } $ " ;
}
],
],
])-> to ( ' after_content ' );
}
คุณต้องตั้งค่า:
button_create
=> true
relation_attribute
=> attribute_name
ถัดไป คุณต้องเพิ่มค่า default
ของฟิลด์ความสัมพันธ์/เลือก:
CRUD :: addField ([
' type ' => " relationship " ,
' name ' => ' order ' ,
' default ' => $ _GET [ ' order_id ' ] ?? null
]);