Laravel 5

Documentation...

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Bonjour,
    Je galère pour trouver une documentation plus fournie que celle que l'on trouve sur le site officiel.
    Je m'explique:
    J'ai une page simple, avec un formulaire composé d'un champ, qui me permet d'enregistrer une adresse mail en base de données. Je fais ça en ajax.

    Je fais le traitement de base:

    public function create(Request $request)
    {
    $abonne = new Abonne;
    $abonne->email = $request->get('email');
    $abonne->save();

    return response()->json($abonne);
    }

    Ca fonctionne, mais il manque la gestion des erreurs... Où trouver cette documentation qui explique de façon exhaustive ce que retourne la fonction méthode save() ?
    Et plus généralement, pour toutes les fonctions du framework ?

    Merci

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2355

    Salut,

    L'API est consultable ici. Pour save la valeur de retour est un booléen. Pour avoir une gestion des erreurs il vaut mieux utiliser saveOrFail qui renvoie une exception si besoin.

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Je vais regarder tout ça.
    Un grand merci!

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Bonjour,
    Je regarde donc la doc...

    Typiquement, pour save(), je lis:

    bool save(array $options = [])

    Save the model to the database.

    Parameters :
    array $options

    Return Value :
    bool

    Nous n'avons pas d'info sur ce que peut contenir $options ?
    Il n'y pas d'exemple d'utilisation ?

    Un profond respect à ceux qui nous font des tutos parce que franchement, trouver de l'info, je trouve ça d'une pénibilité...

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Un autre exemple, qui tendrait à montrer que décidément, je ne suis pas aidé :/

    Toujours dans le cadre de la soumission de formulaire an ajax...
    Au gré de mes recherche sur internet, je suis tombé sur ce genre d'instruction :

    $create = Commentaire::create($request->all());

    Alors c'est top, ça me permet d'enregistrer un commentaire en base vraiment très simplement.
    Très bien! Je veux regarder ce que ça retourne, histoire de gérer les erreurs éventuelles.
    Je vais lire la doc de l'api...

    Alors...
    La classe Commentaire étend la classe Model.
    Je me dis donc que je trouverai la doc de la méthode create() dans Illuminate/Eloquent/Model
    Mais non, pas de trace de create()

    Où trouver la doc de create?

    Ou plus généralement, comment lire cette documentation?
    Je suis le seul à m'y perdre?

    J'ai besoin d'aide...

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2355

    Il y a un outil de recherche en haut de la page de l'API. Pour create je trouve ça. Et ça pointe aussi le code correspondant (lien tout petit à droite) :

    /*
    Save a new model and return the instance.

    @param array $attributes
    @return \Illuminate\Database\Eloquent\Model|$this
    /
    public function create(array $attributes = [])
    {
    return tap($this->newModelInstance($attributes), function ($instance) {
    $instance->save();
    });
    }

    Personnellement plutôt que d'aller comme ça à la pèche je fais :

    dd(Commentaire::create($request->all());)

    Et j'ai tous les renseignements :)

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Moi quand je recherche create, j'obtiens ça
    V'là la liste à parcourir pour trouver une info...
    Commentaire étendant Model, je ne capte pas la logique qui m'inviterait à aller voir dans Builder :/

    En code, trouver un exemple d'utilisation plutôt que le source me serait a priori plus utile. Après, libre à moi en effet d'aller voir le source si je souhaite étudier comment ça marche. Mais la base, a priori, c'est un exemple d'utilisation, non?

    tu fais plutôt

    dd(Commentaire::create($request->all());)

    Dans quel environnement?
    A quoi correspond dd()?

    Merci

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Et merci de partager tes connaissances, bestmomo!
    J'ai suivi ton cours sur openclassroom, et t'ai contacté à ce propos le 17 octobre 2017.
    Je vois que tu es encore au front... Respect! :D

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2355

    Je reconnais qu'il n'est pas facile de s'y retrouver dans l'API avec pas mal d'homonymes, d'ailleurs j'y vais assez rarement.

    La commande dd signifie "Dump and Die", en gros c'est un var_dump() et un arrêt du prgramme. Ca permet de voir le contenu d'une variable, comme par exemple de quelle classe elle est instanciée.

    Pour les exmples de code c'est sûr que c'est l'ideal, je trouve quant à moi la documentation assez riche et sinon une recherche sur Google (ou autre) donne en général pas mal d'exemples accessibles.

    Le cours sur OpenClassroom est malheureusement devenu obsolète et il faut se référer désormais à mon blog.

  • Avatar de dassoun
    Membre depuis :
    11/12/2018
    Messages :
    16

    Je ne connaissais pas la commande dd().
    Je passe à l'occasion sur ton blog ;)

Vous ne pouvez pas répondre à ce sujet.