relations widgets for backpack
3.3.1
composer require izica/relations-widgets-for-backpack
관계_패널
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 매개변수 이름을 전달하는 데 사용됩니다.search
- (선택 사항) closure
, 검색 입력을 활성화합니다.per_page
- (선택 사항) 페이지 매김을 활성화하며 기본적으로 null
입니다.backpack_crud
- 배낭 크루드 URL,buttons
(선택 사항) - 모든 작업 버튼을 숨기려면 false
설정하세요.button_create
(선택 사항) - 숨기려면 false
로 설정하세요.button_show
(선택 사항) - 숨기려면 false
로 설정하세요.button_edit
(선택 사항) - 숨기려면 false
로 설정하세요.button_delete
(선택 사항) - 숨기려면 false
로 설정하세요.visible
(선택 사항) - 패널을 숨기거나 표시하기 위한 closure
columns
(선택 사항) - 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
]);