Comments (1)
I've had this happen to me too. It doesn't happen in the unit test, though.
After some digging I found that it's fairly easy to reproduce:
// First create a hidden column:
$idColumn = new Column\Select('id');
$idColumn->setHidden(true);
$dataGrid->addColumn($idColumn);
// Then create an action column with an action in it:
$actionColumn = new Column\Action('id');
$actionButton = new Column\Action\Button();
$actionButton->setLabel('My buton');
$actionButton->setLink('/edit/' . $actionButton->getColumnValuePlaceholder($dataGrid->getColumnByUniqueId('id')));
$actionColumn->addAction($actionButton);
I'm using the default renderer ('BootstrapTable') and the generated link is now /edit/
, missing the hidden id
column.
Now, let's see what happens when I stop hiding the id
column:
$idColumn->setHidden(false);
The result is still /edit/
instead of /edit/1
(assuming the value of that column would be 1
. Why? Because the action column shouldn't be named 'id'
. But if you leave the parameter of new Column\Action()
blank you might run into a TypeError. Now, fixing this is easy: just set the unique id manually on the id
column:
// First create a hidden column:
$idColumn = new Column\Select('id');
$idColumn->setUniqueId('id');
$idColumn->setHidden(true);
$dataGrid->addColumn($idColumn);
// Then create an action column with an action in it:
$actionColumn = new Column\Action();
$actionButton = new Column\Action\Button();
$actionButton->setLabel('My buton');
$actionButton->setLink('/edit/' . $actionButton->getColumnValuePlaceholder($dataGrid->getColumnByUniqueId('id')));
$actionColumn->addAction($actionButton);
The generated output now contains the correct url: /edit/1
.
Now, I don't quite understand why the TypeError appears, but I've found that this will prevent that error from appearing.
from zfc-datagrid.
Related Issues (20)
- Todo for 2.0 HOT 7
- Custom query HOT 1
- Error rendering NULLs in DateTime columns with PHPExcel HOT 2
- Use route for links or action buttons HOT 3
- Disable cache HOT 7
- Filters - Extended
- Support native ZF Event HOT 2
- Daterange Not working for Doctrine2 Datasource
- Cannot use ZfcDatagrid\Column\DataPopulation\Object as Object because 'Object' HOT 3
- The expediency of using the MvcEvent HOT 6
- Configuration conflict when set non-default cache adapter HOT 3
- Allow changing column type's `filterDefaultOperation` HOT 1
- Drop support for PHP 5.6 and 7.0 HOT 3
- Implement all filters in ZfcDatagrid\Renderer\JqGrid\View\Helper\Columns::getStyles HOT 3
- Possibility set a column position HOT 1
- Package phpoffice/phpexcel is abandoned HOT 1
- bootstrap v4 template HOT 1
- Add datagrid filters instead of using the columns filters
- TypeError when applying toobar filter on grid with PhpArray datasource and null value in data HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zfc-datagrid.