phpframeworkscrudatk4

How to add filter and quicksearch to ATK$ CRUD


I have a page in ATK4 that looks like this

<?php

class page_backlog extends Page
{

    function init()
    {
        parent::init();
        $p = $this;

        $logged_in_users_team = $p->api->getTeamID();
        $s = $p->add('Model_BacklogStory');
        $s->addCondition('team_id', $logged_in_users_team);
        $s->addCondition('side_task', 0);

        $crud = $p->add('CRUD');
        $c = $crud->setModel($s, null, array('description', 'backlog_ref', 'points', 'priority_no'));

        if ($c->grid) {
            $c->grid->last_column = 'points';
            $c->grid->getColumn('points')->makeSortable();
            $c->grid->addQuickSearch(array('description', 'backlog_ref'));
        }
    }

}

with the code taken from the agiletoolkit documentation

The grid displays but the quicksearch and sort link on the points field do not. Instead there is an error at the top of the page

C:\wamp\www\test1\page/backlog.php:16 [8] Undefined property: Controller::$grid

Where line 16 is if($c->grid){

Any suggestions as to what i have missed ?


Solution

  • yeah.

    $c=$crud->setModel($s, null, array('description', 'backlog_ref', 'points','priority_no'));
    

    this makes $c to become a Model and from this line further $c does not reference crud. therefore use either if ($crud->grid) or add line $c = $crud;