Gestione degli utenti

Salve, sono nuova e mi sono da pochissimo approcciata a Yii2, con non poche difficoltà, per creare un portale. Per il momento sto seguendo dei tutorial su un canale youtube, ma non viene spiegata una delle cose principali che a me servirebbe per il sito, quindi volevo chiedervi gentilmente una mano.

Nel mio sito è prevista la possibilità, da parte degli utenti, di creare una scheda di un prodotto diciamo. Io vorrei che per ogni utente, nel backend, fossero visibili e modificabili solo le schede create da quell’utente in particolare. In più, durante la creazione della scheda, devo associare nel db l’id dell’utente (o il nome dell’associazione, in questo caso) alla scheda del prodotto creata e mi piacerebbe che fosse messo in automatico (sfruttando il login) durante la fase di creazione della scheda.

Non so se sono riuscita a spiegarmi in maniera chiara.

Intanto vi ringrazio e spero che qualcuno possa darmi una mano! :)

Ciao, il fatto è che per poterti aiutare dovresti esplicitare meglio il tuo problema.

Apparentemente è sufficiente che tu inserisca nella tabella prodotti il campo "id_utente" e poi in fase di visualizzazione applichi il filtro

id_utente = \Yii::$app->user->identity->id

Però se posti il codice che ti crea problemi, l’aiuto può essere un pò più concreto.

Intanto potresti aiutarti con Gii, se non lo hai ancora fatto, a creare le CRUD del tuo model.

Si si, è presente all’interno della tabella nel database. Ho creato co gii il modulo relativo alla tabella del “prodotto” che nel mio caso è una scheda descrittiva di un cane. Tieni conto che sono davvero agli inizi e che non conoscendo bene il framework, so cosa dovrei fare, ma non so dove mettere mano nel codice purtroppo.

Il filtro che tu mi hai passato, lo devo mettere all’interno del modulo che ho creato? e precisamente…dove?

Ti passo il codice del modulo, in caso fosse corretta la mia supposizione :)

<?php

namespace backend\models;

use Yii;

/**

  • This is the model class for table "cane".

  • @property integer $id

  • @property integer $id_associazione

  • @property string $nome_cane

  • @property string $sesso

  • @property integer $eta

  • @property integer $id_taglia

  • @property string $descrizione_cane

  • @property string $data_cane

  • @property integer $id_adozione

  • @property string $img_profilo_cane

  • @property string $img_cane

*/

class Cane extends \yii\db\ActiveRecord

{

/**


 * @inheritdoc


 */


public static function tableName()


{


    return 'cane';


}





/**


 * @inheritdoc


 */


public function rules()


{


    return [


        [['id_associazione', 'eta', 'id_taglia', 'id_adozione'], 'integer'],


        [['data_cane'], 'required'],


        [['data_cane'], 'safe'],


        [['nome_cane'], 'string', 'max' =&gt; 50],


        [['sesso'], 'string', 'max' =&gt; 2],


        [['descrizione_cane'], 'string', 'max' =&gt; 2500],


        [['img_profilo_cane', 'img_cane'], 'string', 'max' =&gt; 300],


    ];


}





/**


 * @inheritdoc


 */


public function attributeLabels()


{


    return [


        'id' =&gt; 'ID',


        'id_associazione' =&gt; 'Id Associazione',


        'nome_cane' =&gt; 'Nome Cane',


        'sesso' =&gt; 'Sesso',


        'eta' =&gt; 'Eta',


        'id_taglia' =&gt; 'Id Taglia',


        'descrizione_cane' =&gt; 'Descrizione Cane',


        'data_cane' =&gt; 'Data Cane',


        'id_adozione' =&gt; 'Id Adozione',


        'img_profilo_cane' =&gt; 'Img Profilo Cane',


        'img_cane' =&gt; 'Img Cane',


    ];


}

}

Questo è il model, il filtro lo devi applicare a livello di action del controller. Parliamo dell’action “index”.