Domanda

Sto scrivendo una webapp utilizzando CodeIgniter che richiede l'autenticazione.Ho creato un modello che gestisce tutta la mia autenticazione.Tuttavia, non riesco a trovare un modo per accedere a questo modello di autenticazione dall'interno di un altro modello.Esiste un modo per accedere a un modello dall'interno di un'altra modalità o un modo migliore per gestire l'autenticazione all'interno di CodeIgniter?

È stato utile?

Soluzione

In generale, non vuoi creare oggetti all'interno di un oggetto.È una cattiva abitudine, invece, scrivere un'API chiara e inserire un modello nel tuo modello.

<?php
// in your controller
$model1 = new Model1();
$model2 = new Model2();
$model2->setWhatever($model1);
?>

Altri suggerimenti

Sembra che tu possa caricare modelli all'interno di modelli, anche se probabilmente dovresti risolverlo in un altro modo.Vedere Forum CodeIgniter per una discussione.

class SomeModel extends Model
{
  function doSomething($foo)
  {
    $CI =& get_instance();
    $CI->load->model('SomeOtherModel','NiceName',true);

    // use $CI instead of $this to query the other models
    $CI->NiceName->doSomethingElse();
  }
}

Inoltre, non capisco cosa stia dicendo Till riguardo al fatto che non dovresti creare oggetti all'interno di oggetti.Certo che dovresti!L'invio di oggetti come argomenti mi sembra molto meno chiaro.

Non gestire l'autenticazione nel tuo modello.Utilizza solo modelli per interfacciarti con il tuo database, o ldap o altro.

Ho creato una libreria Auth che utilizzo per gestire l'autenticazione e l'autorizzazione.Puoi accedere a una libreria come questa dai tuoi controller.

Caricare un modello all'interno di un modello è ora possibile con il nuovo CodeIgniter.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top