Just nu i M3-nätverket
Gå till innehåll

Behöver en funktion från modellen i modellen. Anropa från controller eller model?


Martin79

Rekommendera Poster

En funktion i modellen måste få data från en annan funktion i modellen. Bör man gå tillbaka till kontrollern eller anropa den direkt från modellen?

 

Anropa generate från kontrollern

 



class Inventory extends Controller {


function add_stock()
{
$generate = $this->model->generate(); //call generate from controller
$this->model->current_stock($generate);
}
}


class Model {
    public function current_stock($generate)
    {
    //do something
    }


    public function generate()
    {
    //do something
    return
    }
}


 

ELLER LÖSNING 2

 

Anropa generate från modellen

 



class Inventory extends Controller {


function add_stock()
{
$this->model->current_stock();
}
}


class Model {
    public function current_stock()
    {
$generate = $this->generate(); //call generate from model
    //do something
    }


    public function generate()
    {
    //do something
    return
    }
}


 

ELLER LÖSNING 3

 

Ett tredje alternativ är att anropa en funktion vars enda uppgift är att deligera till andra funktioner i modellen, dvs såhär. Hur ser det ut?

 



class Inventory extends Controller
{
    function add_stock()
    {
        $this->model->add_stock();
    }
}


 



class Model
{
    public function current_stock($generate)
    {
        //do something with information from generate
    }


    public function generate()
    {
        //do something
        return;
    }


    function add_stock()
    {
        $generate = $this->generate();
        $this->current_stock($generate);
    }
}


 

Alla lösningar fungerar men vilken är bästa lösningen?

 

OBS! Detta är bara kodexemel och kan innehålla något fel, bara för att illustrera hur jag menar.

Länk till kommentar
Dela på andra webbplatser

Det är samma sak som att säga "Jag vill ge mig pengar för att köpa hamburgare"

 

kan du inte göra typ

 

$this->model->calculate_stop() och inuti det anropa generate() ?

Länk till kommentar
Dela på andra webbplatser

Det är samma sak som att säga "Jag vill ge mig pengar för att köpa hamburgare"

 

kan du inte göra typ

 

$this->model->calculate_stop() och inuti det anropa generate() ?

Förstår inte din ironi med hamburgare ;)

 

Känns som att ditt förslag påminner om mitt exempel 3? Eller ex 2? Stämmer det?

 

Döper MS sina modeller såhär? Hade jag ingen aning om ;)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...