GithubHelp home page GithubHelp logo

Comments (7)

mdpoulter avatar mdpoulter commented on May 27, 2024

Hi @martinschenk. Could you possibly provide some more details as it's difficult to work out what's going on?

from nova-enum-field.

martinschenk avatar martinschenk commented on May 27, 2024

from nova-enum-field.

martinschenk avatar martinschenk commented on May 27, 2024

here a more detailed explication:

the mysql database table has an enum column named "BACKOFFICE".
The ENUM definition is: 'S','N', Allow NULL, Default N

Record 1 of the table has set the ENUM field to 'S'

I created the class SiNo:

    final class SiNo extends Enum
    {
        const S = 'S';
        const N = 'N';
    } 

My Model:

    class Perfil extends Model
    {
        use CastsEnums;
    
        protected $casts = [
            'BACKOFFICE' => SiNo::class
        ];

My Nova Model:

 Enum::make('BACKOFFICE')->attach(SiNo::class),

If i call now the nova page,

  • the index (list) view of the BACKOFFICE field shows up empty = "----" like in the first screenshot above.
  • the edit field of the record shows: "choose an option" with the dropdown and the possibilities S and N. (But as you remember, in the database, there is set S.

No i make just some very small changes to get it working:
1.) i change the name of the table from BACKOFFICE to _backoffice
2.) i change in the model

    '_backoffice' => SiNo::class

3.) i change in the nova model

  Enum::make('_backoffice')->attach(SiNo::class),

Now it works all perfect!

In the list view i get the real database values and in the edit view he show also the correct values.

My problem:
As the database is used also by other services, i can not rename the column name from BACKOFFICE to _backoffice.

So how can i get it to work please?

mysql Ver 14.14 Distrib 5.7.32, for osx10.15
PHP 7.4.16 (cli)
Laravel 8

from nova-enum-field.

mdpoulter avatar mdpoulter commented on May 27, 2024

Thanks for the further details. I will see if I can replicate the problem this weekend.

from nova-enum-field.

martinschenk avatar martinschenk commented on May 27, 2024

from nova-enum-field.

martinschenk avatar martinschenk commented on May 27, 2024

Resolved.

I added in config/datababese.php

PDO::ATTR_CASE => PDO::CASE_LOWER

'mysql' => [
      'options' => extension_loaded('pdo_mysql') ? array_filter([
                 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
                 PDO::ATTR_CASE => PDO::CASE_LOWER
        ]) : [],
],

then i had to change all field names in the code to lowercase.

Now works, fine. Thanks

from nova-enum-field.

mdpoulter avatar mdpoulter commented on May 27, 2024

Okay great! Glad to hear it. This sounds like quite an edge case scenario, so I'll close the issue for now unless someone else runs into it.

from nova-enum-field.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.