× This forum has been locked. Please submit new Feature Requests on GitHub: github.com/Jensen-Technologies/component-creator-issues/issues

Unique value field when you save the form

3 years 9 months ago #1479 by Randy Tobias

Hi. I'm having a problem with this. Is the uniqueness being enforced via code? I created a unique field, and expected the column in the table to be unique, which it doesn't appear to be. I am interacting with my component's table from an external source, and it is adding several rows with the same email address, even though I had configured that field to be unique in the component creator.

Please Log in or Create an account to join the conversation.

3 years 9 months ago #1480 by Andres Maeso

Hi Randy

We can only make sure that uniqueness is correct in Joomla. Unfortunately, there is no way we can predict all possible interactions with external developments, so you will need to take care of that.

Regards,

Andrés.


Andrés Maeso
Customer relations manager at Joomla Component Creator.

This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

3 years 9 months ago #1481 by Randy Tobias

Hi Andres,

That didn't really answer my question. I had wanted to know why the column in the DB is not set to unique when I mark a field as unique in the component creator. My external integrations have been modified to deal with this, but it makes my development a lot longer and makes my code far less efficient because in have to do a DB query and then and update. This is an extra DB call, plus some processing when just having the column be unique in the DB would do the same, but faster and easier. This is why I ask if there is a reason why the column in the DB is not made unique.

Please Log in or Create an account to join the conversation.

3 years 9 months ago #1482 by Søren Beck Jensen

We use the built in Joomla method for ensuring that fields are unique which places a check in the bind method of the model. This allows Joomla to show better error messages and prevents SQL errors that would otherwise occur if we relied on the UNIQUE field in MySQL.

If you are already developing other extensions on top of the same table or allowing non Joomla tools access to modify your Joomla database tables, you are way beyond what we would consider standard use of Joomla and modifying the database table to have a UNIQUE key should not be much of an added task.

If we see more users who have this exact issue we will consider how we can improve this feature in the future.


Søren Beck Jensen
Founder, Component-Creator.com
The following user(s) said Thank You: Randy Tobias

Please Log in or Create an account to join the conversation.

3 years 9 months ago #1483 by Randy Tobias

Thanks, this was the kind of answer that I was looking for. The reason why the approach was taken.

I certainly could manually update my table to add the uniqueness, but as we update the component (a lot now since we are still in development) and we develop on a test site before we move our finished products to a live site, we felt it would be safer at this point to add logic to check for and ensure uniqueness. Just too easy to miss altering the table at one crucial time and have things go wrong.

I would definitely be in favor of adding in the ability, maybe, to select an option on how uniqueness is enforced (through code or table structure) if this ends up being a reasonable possibility. Might even be interesting if you were able to provide a both option where both the binding method of the model, as well as altering the table are used.

Anyway, thank you very much for explaining the situation to me. I appreciate it.

Please Log in or Create an account to join the conversation.

Time to create page: 0.123 seconds
Powered by Kunena Forum

We use cookies so that you can place orders and we can provide a better service. You can control the use of cookies at the individual browser level. If you reject cookies, you may still use our website, but your ability to use some features or areas of our website may be limited.