Join us for EEConf 2023, October 4-5 in Orlando. Speakers. Networking. Community powered. Awesome.
Join us for EEConf 2023, October 4-5 in Orlando.
Register Now!The latest release seems to have some serious issues or is broken in different ways. I just confirmed this on 2 different installations and I installed a new clean EE without anything else except to replicate the issue.
Install EE 6.4.14 downloaded from Github.
New database, new installation.
Create a first template or default.
Create a first channel. Name it whatever you want.
Create a first field group. Name it what ever you want.
Create a new grid field, let’s call it ‘test’, with 1 text input field, let’s call this text field test 2.
Assign it to the group.
Assign to the channel created previous.
Now try to load the grid field in a template form, the one you created, does matter really with and try to load the channel entry created:
{exp:channel:form channel="your-channel" author_only="yes" entry_id="1"]
{title}
{/exp:channel:form}
Works!
Now, attempted to load the grid field we created:
{exp:channel:form channel="your-channel" author_only="yes" entry_id="1"]
{title}
{test}
{test:test2}
{/test}
{/exp:channel:form}
Try to load the page as the logged-in user who owns the entry, just admin in our quick test will do.
Result:
Exception Caught
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.exp_channel_grid_field_' doesn't exist:
SELECT * FROM (`exp_channel_grid_field_`) WHERE `entry_id` IN (NULL) AND `fluid_field_data_id` = 0 ORDER BY `row_order` asc
ee/legacy/database/drivers/mysqli/mysqli_connection.php:114
Errors continue….
Does someone see the issue? It’s missing the ID in the query, and this breaks the site completely. I was able to replicate this on new installations with nothing else except the first channel, and field and template I created.
Tested on different servers with different configurations and database versions. All new installations, on PHP 7.2, .73, 7.4, all give the same error as well.
Both with custom prefix tables or just the default exp_
This means this is not an environment problem but something in the code. I can only assume that the latest release of GitHub posted is bugged or did not pass the tests before production, or was dev version was posted mistakenly instead.
https://github.com/ExpressionEngine/ExpressionEngine/releases/tag/6.4.14
Can someone please confirm if that is indeed the stable 6.x release?
Not sure, but if someone is using channel forms+grid field (which many likely do) it will break their sites. I guess plenty of people have not updated yet to the latest release since it’s only out for a few days, but once they do, they probably see their sites crashing with a similar SQL error, at least on pages where a channel form is.
It does look like a bug that it throws a mysql error. EE shouldn’t be throwing PHP/MySQL errors regardless.
But I don’t believe grid fields ever parsed like that in the channel form, and manual construction of a grid form field isn’t supported. Normally you’d output the field using {field:gridfield_name}, which I double checked and that does work as expected.
The error is definitely a bug, but I’m thinking wanting the field to parse may be a feature request. And there may well be a better way to approach your end goal.
If the syntax of a tag is wrong in the template (typo, not supported, etc.), usually nothing happens or at worst, the tag is rendered as plain text in the template. As you said, it should not break the system with an SQL error either way.
{field:gridfield_name} works for you inside a channel form?
It does not for me, it just gets printed out. Actually, even inside the regular channel form, that does not output anything either. The proper format as far as I’m aware is:
{field}
{field:gridfield_name}
{field}
Using only {field:gridfield_name} I get no output.
In the docs, they say that the fluid fields are not supported inside a channel form, but they don’t mention anything about grid fields.
And I checked with this multiple other people and all said grid fields should be allowed inside a channel form. Strangely, I actually tested a fluid text field inside a channel form (just for fun) and it did work. I would have expected that to actually cause an error, since it’s clearly stated that fluid fields are not supported inside channel forms in the documentation.
I tried all possible ways to display a grid text field in a form without luck and that specific example I posted causes that SQL error yet that works in a regular channel form.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.