Yii Framework Forum: Fragen Zu Controller + View - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Fragen Zu Controller + View Rate Topic: -----

#1 User is offline   beat78 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 53
  • Joined: 13-May 11
  • Location:Zürich

Posted 24 April 2013 - 02:32 PM

Hallo Zusammen

Ich komme aus der prozeduralen Ecke und bin am OOP lernen.
Ich möchte es gleich richtig lernen. Wie mache ich das elegant? Mein Ansatz ist bestimmt redundant und ineffizient.

Zielverhalten
- Ich möchte den Guest beim starten der actionProjekt darauf hinweisen das er sich zuerst anmelden muss. Die Auflistungen der Projekt darf er sehen.
- Der Member soll die actionProject normal ausführen können.

festgestellte Probleme
- Das data array fülle ich redundant in 2 action ab.
- irgendwie ist das ganze ein gebastel.
- Mit den AccessRoules wechselt es die Seite, möchte die Meldung auf der selben seite anzeigen.
Muss ich die Meldung evt. mit jQuery ausgeben?

Testumgebung
www.makebusiness.ch (user: test@test.ch password: demo)

Controller

	public function actionProject() {
	
		if (Yii::app()->user->isGuest) {

			$msg ="Bitte zuerst anmelden."; 
			$data= TblProjekt::model()->FindAll();  
			$this->render('show', array('var1' => $msg,'typ' => 'alert alert-error','data'=>$data));  // <-- render mit bootstrapmeldung im array
			
		} else { 
    	
   		// ********
   			//  Function die der Member ausführen darf
                // ********
		}
	}
	
	public function actionShow() {

		if (isset($_GET['id'])) {

			$data= TblProjekt::model()->FindAllByAttributes(array('Kategorie'=>$_GET['id']));  
		} else {
			$data= TblProjekt::model()->FindAll();  	
		}
 		
		$this->render('show',array('data'=>$data));

	}



View

<div>
		<? if (isset($var1)) { 				//<-- Infomeldung oben am Browser
		Echo "<div class=".$typ.">";
		echo $var1; 
		echo "</div>"; }?>
	</div>

	<?  
	$count_items = count($data);

		if($count_items > 0){

		?> <div id="container"> <?
		
	// Durchläuft die Datensätze
    foreach($data as $item) {

Darstellung der Daten

}

0

#3 User is offline   SleepWalker 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 02-June 12
  • Location:Ukraine

Posted 25 April 2013 - 12:24 AM

Hallo,

du kannst alles im einen action einbauen:
         public function actionProject() {
                
                if (isset($_GET['id']) && !Yii::app()->user->isGuest) {
                        $data= TblProjekt::model()->findAllByAttributes(array('Kategorie'=>$_GET['id']));  
                } else {
                        $data= TblProjekt::model()->findAll();          
                }
        
                if (Yii::app()->user->isGuest) {

                        $msg ="Bitte zuerst anmelden."; 
                        $this->render('show', array('var1' => $msg,'typ' => 'alert alert-error','data'=>$data));  // <-- render mit bootstrapmeldung im array
                        
                } else { 
                        $this->render('show',array('data'=>$data));
                }
        }

oder so:
         public function actionProject() {
                
                if (isset($_GET['id']) && !Yii::app()->user->isGuest) {
                        $data= TblProjekt::model()->findAllByAttributes(array('Kategorie'=>$_GET['id']));  
                } else {
                        $data= TblProjekt::model()->findAll();          
                }

                if (Yii::app()->user->isGuest) {

                        $msg ="Bitte zuerst anmelden.";  
                        $this->render('show', array('var1' => $msg,'typ' => 'alert alert-error','data'=>$data));  // <-- render mit bootstrapmeldung im array
                        
                } else { 
                        $this->show($data);
                }
        }
        
        protected function show($data) {                
                $this->render('show',array('data'=>$data));

        }

houath - simple integration with social network authorization on Yii
1

#4 User is offline   beat78 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 53
  • Joined: 13-May 11
  • Location:Zürich

Posted 25 April 2013 - 02:38 AM

Hallo SleepWalker


Genial, du hast mir endlich den gordischen Knoten gelöst.

Vielen Dank.

Grüsse Beat
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users