Yii2 model::findOne($id); => controller not found

Ciao a tutti,

sto cercando di far funzionare la logica restfull di yii2,

seguendo questo tutorial:

http://www.yiiframework.com/wiki/748/building-a-rest-api-in-yii2-0/

anzi per far prima ho proprio scaricato l’esempio già fatto:

https://github.com/sirinibin/yii2rest/blob/master/UserController.php

unica modifica, che ho apportato è usare come modello degli utenti ProvaUtenti anziché User

per tanto nella funzione:




    protected function findModel($id)

    {

        if (($model = ProvaUtenti::findOne($id)) !== null) {

            return $model;

        } else {

        

           $this->setHeader(400);

	   echo json_encode(array('status'=>0,'error_code'=>400,'message'=>'Bad request'),JSON_PRETTY_PRINT);

	   exit;

           // throw new NotFoundHttpException('The requested page does not exist.');

        }

    }



ho sostituito User con [size=2]ProvaUtenti.[/size]

[size=2]

[/size]

[size=2]Ho 2 problemi:[/size]

[size=2]1) la prima riga di codice diceva:[/size]

[size=2]


[/size]

namespace app\modules\api\controllers;

[size=2]

[/size]

[size=2]ma dato che collegandomi su[/size]

URL: api/user/index

come da guida mi dava l’errore:

Not Found (#404)

Unable to resolve the request "api/user/index".

ho cambiato la prima riga in:




namespace app\controllers;



così da far funzionare il servizio collegandomi così:

[size=2]URL:[/size][size=2] [/size]user/

Domanda facoltativa, come avrei dovuto risolvere questo problema?

  1. il secondo problema, che poi è quello per cui vi sto scrivendo

Se mi collego su

[size=2]URL:[/size][size=2] [/size]user/

chiedendo l’elenco degli utenti, tutto ok, mi viene restituito il json

se invece chiedo il dettaglio di un singolo utente

[size=2]URL:[/size][size=2] [/size]user/1

yii2 mi segnala errore sulla riga:




if (($model = ProvaUtenti::findOne($id)) !== null) {



segnalandomi:

PHP Fatal Error – yii\base\ErrorException

Class ‘app\controllers\ProvaUtenti’ not found

ma io ho creato il model [size=2]ProvaUtenti, perchè lui cerca il controller?[/size]

[size=2]E’ logico che non lo trovi, e non ha senso che lo cerchi.[/size]

[size=2]I record si cercano tramite modello e non controller.[/size]

[size=2]Questo almeno con yii[/size]

[size=2]

[/size]

[size=2]Su yii2 non ho proprio idea.[/size]

[size=2]Come si risolve questo rompicapo?[/size]

Era un bel pò che non mi collegavo su questo forum,

rileggendo la mia firma, mi è venuto in mente di seguire il consiglio ed ho trovato la soluzione al secondo problema:

così ho iniziato a capire a cosa serve ‘use’

Ora rimane da risolvere solo la domanda (1)

chi mi spiega come funziona il namespace?

Provato a leggere qui?

Ciao,
sto cercando di utilizzare il:
https://www.yiiframework.com/wiki/748/building-a-rest-api-in-yii2-0

ma ad ogni richiesta, ad esempio POST (da postman) ,
http://localhost:8080/Yii2API/backend/web/index.php/1/authorize
mi da sempre BAD REQUEST etc… allego immagine

se vi è possibile fatemi sapere x favore.

Grazie

ciao Emanuele, benvenuto.
Sarebbe meglio che tu aprissi un nuovo thread per il tuo problema, visto che sebbene si parli comunque di interfaccia REST non mi pare esattamente la stessa cosa segnalata originariamente in questa discussione.

Inoltre servirebbe qualche dettaglio in più sulla tua applicazione, ad esempio come hai configurato le rotte e il controller.

Ciao e grazie cmq per la risposta,
la prossima volta apro un nuovo thread, intanto posto la soluzione:
con firefox REST Client abbiamo capito che l’URL era errato e che nel body andavano scritti i parametri in questo modo:
{
“username”:“emanuelesalati”,
“password”:“admin”
}

Grazie e buona giornata