Bonjour,

Je voulais savoir si il est possible de créer une ressource en fonction d'une colonne dans la table, et non la table entière.
Ou alors savoir si il est possible d'afficher ou non des champs en fonction d'une valeur dans la table.

Je m'explique j'ai une table pages qui contient un id, un titre, sous titre, autheur ect et pages_content_id
Ainsi qu'une autre table pages_content qui contient txt1 .... txt10 , img1 .... img10 ect ect .
Le truc c'est qu'en fonction des pages , je n'ai pas les mêmes données.

J'ai peut être 3 images sur la pages d'accueil et 1 texte contre 1 images et 4 texte sur la page a propos.

Donc voilà, est il possible de rendre des champs dynamique, grossièrement traduit par if($model->title = 'about') {
Ou à l'inverse créer une ressource par ligne

J'aurai peut être une préférence pour la méthode 2 : créer une ressource pour chaque ligne de ma table

Merci par avance, bon dimanche à tous

3 réponses


fkeloks
Réponse acceptée

Bonsoir,

As-tu regardé du niveau des Computed fields ?

https://nova.laravel.com/docs/2.0/resources/fields.html#computed-fields

Le champ pourrai alors s'adapter selon ta propre logique.
Exemple :

Text::make('Name', function() {
    return $this->first_name . ' ' . $this->last_name;
})

Re,

A chaque fois ça m'arrive, je bloque sur un truc toute la journée, j'attends demain , je poste un message sur le forum et je me dis bon je vais regarder quand même, j'ai surement loupé un truc , et boom c'est écrit dans la docs. J'ai résolu mon problème avec

    public static function indexQuery(NovaRequest $request, $query)
    {
        return $query->where('page', 'about');
    }

Donc je peux bien créer une ressources pour chaque ligne dans ma table. Désolé et bon courage à tous :)

Hello,

Oui je crois que je vais devoir passé par la , parce qu'en utilisant Laravel\Nova\Fields\HasOne , je me retrouve bloqué, je dois créer une ressource supplémentaire puis qu'il intégre la ressource lié a la clef etrangère. J'aurai donc Home :

HasOne::make('homeContent'),

Et donc la ressource HomeContent avec mon contenu personnalisé , pareil pour about, mentions légal, contact ect donc voila mdr

Ton idée est la solution qu'il me faut, cependant, en ecrivant :

          Text::make('Name', function() {
            return $this->txt1;
          }),

J'ai pas d'erreur mais j'ai pas de champs. J'ai ma relation qui fonctionne dans mon model Page et pageContent