@@ -452,18 +452,25 @@ public function getSecondaryHeaderCallback()
452
452
public function getSecondaryHeaderContents ($ rows )
453
453
{
454
454
$ value = null ;
455
+ $ callback = $ this ->getSecondaryHeaderCallback ();
455
456
456
457
if ($ this ->hasSecondaryHeaderCallback ()) {
457
- if (is_callable ($ this -> getSecondaryHeaderCallback () )) {
458
- $ value = call_user_func ($ this -> getSecondaryHeaderCallback () , $ rows );
458
+ if (is_callable ($ callback )) {
459
+ $ value = call_user_func ($ callback , $ rows );
459
460
460
461
if ($ this ->isHtml ()) {
461
462
return new HtmlString ($ value );
462
463
}
463
- } elseif ($ this ->getSecondaryHeaderCallback () instanceof Filter) {
464
- return $ this ->getSecondaryHeaderCallback ()->render ($ this ->getComponent ());
464
+ } elseif ($ callback instanceof Filter) {
465
+ return $ callback ->render ($ this ->getComponent ());
466
+ } elseif (is_string ($ callback )) {
467
+ $ filter = $ this ->getComponent ()->getFilterByKey ($ callback );
468
+
469
+ if ($ filter instanceof Filter) {
470
+ return $ filter ->render ($ this ->getComponent ());
471
+ }
465
472
} else {
466
- throw new DataTableConfigurationException ('The secondary header callback must be a closure or a filter object . ' );
473
+ throw new DataTableConfigurationException ('The secondary header callback must be a closure, filter object, or filter key if using secondaryHeaderFilter() . ' );
467
474
}
468
475
}
469
476
@@ -500,18 +507,25 @@ public function getFooterCallback()
500
507
public function getFooterContents ($ rows )
501
508
{
502
509
$ value = null ;
510
+ $ callback = $ this ->getFooterCallback ();
503
511
504
512
if ($ this ->hasFooterCallback ()) {
505
- if (is_callable ($ this -> getFooterCallback () )) {
506
- $ value = call_user_func ($ this -> getFooterCallback () , $ rows );
513
+ if (is_callable ($ callback )) {
514
+ $ value = call_user_func ($ callback , $ rows );
507
515
508
516
if ($ this ->isHtml ()) {
509
517
return new HtmlString ($ value );
510
518
}
511
- } elseif ($ this ->getFooterCallback () instanceof Filter) {
512
- return $ this ->getFooterCallback ()->render ($ this ->getComponent ());
519
+ } elseif ($ callback instanceof Filter) {
520
+ return $ callback ->render ($ this ->getComponent ());
521
+ } elseif (is_string ($ callback )) {
522
+ $ filter = $ this ->getComponent ()->getFilterByKey ($ callback );
523
+
524
+ if ($ filter instanceof Filter) {
525
+ return $ filter ->render ($ this ->getComponent ());
526
+ }
513
527
} else {
514
- throw new DataTableConfigurationException ('The footer callback must be a closure or a filter object . ' );
528
+ throw new DataTableConfigurationException ('The footer callback must be a closure, filter object, or filter key if using footerFilter() . ' );
515
529
}
516
530
}
517
531
0 commit comments