[RISOLTO]Widget not found


(Lcnlcn) #1

Ciao a tutti vi espongo il mio problema :

Ho creato un widget (prima volta) nella cartella common\widget\struttura\StrutturaWidget.php.

Richiamo il mio widget in questo modo ‘echo StrutturaWidget::widget([‘IdStruttura’ => $model->id]);

in un file index.php indicando 'use common\widgets\struttura\StrutturaWidget;

il server mi segnala ‘Class ‘common\widgets\struttura\StrutturaWidget’ not found

Faccio presente che ho utilizzato Yii2 advanced, non riesco a trovare una soluzione

mi potete dare una mano ?


(Fabrizio Caldarelli) #2

Hai specificato il namespace nel file StrutturaWidget?

StrutturaWidget.php




namespace common\widgets\struttura;


class StrutturaWidget {

}





(Lcnlcn) #3

Si questo è il widget

namespace common\widgets\struttura;

use yii\base\Widget;

use app\modules\condomini\models\Strutturacond;

class StrutturaWidget extends Widget

{

public $idStruttura = 0;


public $dati;


public function init()


{


    parent::init();


    if ($idStruttura == 0) {


       $this->dati = Strutturacond::getTreeForGrid(); 


       


    } else {


      $this->dati = Strutturacond::getTreeForGrid($idStruttura);


    }


    


}





public function run()


{


     


    $dataProvider = new ArrayDataProvider(['allModels' => $this->dati, 'key' => 'id']);


    return $this->render('index', ['dataProvider' => $dataProvider]);


}

}


(Fabrizio Caldarelli) #4

C’è un errore nel percorso dove hai salvato il file php.

Infatti è:

common\widget\struttura

invece deve essere (s in widgets)

common\widgets\struttura


(Lcnlcn) #5

la riga del post iniziale è sbagliata

common\widget\struttura\StrutturaWidget.php

questa è quella giusta

common\widgets\struttura\StrutturaWidget.php

ho controllato il programma ed è giusto


(Fabrizio Caldarelli) #6

così a colpo d’occhio non vedo altri errori.

Qual è la riga specifica che ti viene segnalata? Puoi riportare la riga dell’errore?


(Lcnlcn) #7

15161718192021222324252627282930<?php

if ($model->isNewRecord) {

echo &#036;this-&gt;render('create', ['model' =&gt; &#036;model]);

} else {

echo &#036;this-&gt;render('update', ['model' =&gt; &#036;model]);

}

?>

<?php

echo StrutturaWidget::widget([‘IdStruttura’ => $model->id])


(Fabrizio Caldarelli) #8

E’ tutto corretto.

Verificherei ancora che il file StrutturaWidget.php sia salvato nella cartella corretta.


(Lcnlcn) #9

dopo 24 ore ho risolto: il file StrutturaWidget era sbagliato l’avevo chiamato SrutturaWidget (t) mancante.

mi dispiace

grazie a tutti