Yii Framework Forum: Wohin Mit Logik Für Suchformular Im Header - Yii Framework Forum

Jump to content

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

Wohin Mit Logik Für Suchformular Im Header Rate Topic: -----

#1 User is offline   beatcode 

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

Posted 08 December 2012 - 07:02 AM

Guten Tag

Ich habe in der Layout/Main.php ein Suchformular mit Yiibooster integriert. Diese ist nun in jeder view, da ja im Header hinterlegt, sichtbar.

<? $model = new Demo;?>
<?php $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
	'id'=>'searchForm',
	'type'=>'search',
	'htmlOptions'=>array('class'=>'well'),
)); ?>
<?php



Wo muss ich den Code für die Formularverarbeitung platzieren damit dieser in jedem Controller aufgerufen wird? Oder sollte ich das Formular auf jeder view und in jedem Controller integrieren?

Ich hoffe ich konnte mein Problem verständlich formulieren.

Gruss Beat
0

#2 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 608
  • Joined: 08-May 09

Posted 08 December 2012 - 07:20 AM

class MainController extends CController
{
  public function beforeAction($action)
  {
    //deine Formularverarbeitung
  }
}

class PostController extends MainController
{
  public function actionIndex()
  {
  }
}


0

#3 User is offline   beatcode 

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

Posted 08 December 2012 - 07:25 AM

Ich habe zur Zeit keinen MainController. Gehe davon aus, dass ich eine solche beforAction in jedem meiner Controller einbaue? oder ist das wie ein FrontController zu verstehen?
0

#4 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 608
  • Joined: 08-May 09

Posted 08 December 2012 - 07:38 AM

http://www.yiiframew...reAction-detail

achja, vergiss das return true nicht
1

#5 User is offline   beatcode 

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

Posted 08 December 2012 - 07:42 AM

Genial!!! Funktioniert.

Ist es auch korrekt umgesetzt?

Layout/Main.php
	<? $model1 = new Demo;?>
	<?php $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
		'id'=>'searchForm',
		'type'=>'search',
		'htmlOptions'=>array('class'=>'well'),
		)); ?>
		<?php echo $form->textFieldRow($model1, 'suchen', array('class'=>'input-medium', 'prepend'=>'<i class="icon-search"></i>')); ?>	
		<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'label'=>'Go')); ?>
	<?php $this->endWidget(); ?>


TestController.php

<?php

class TetsController extends Controller {

	public function beforeAction($Action)  {
      
		$model1 = new Demo;
		
		if(isset($_POST['Demo'])) {
			$model1->attributes=$_POST['Demo'];
			echo $model1->suchen;
		}
	return true;
	}
 }  
Posted Image
0

#6 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 608
  • Joined: 08-May 09

Posted 08 December 2012 - 07:43 AM

View Postbeat78, on 08 December 2012 - 07:25 AM, said:

Ich habe zur Zeit keinen MainController. Gehe davon aus, dass ich eine solche beforAction in jedem meiner Controller einbaue? oder ist das wie ein FrontController zu verstehen?


in dem du alle deine controller von einem controller ableitest, der beforeAction() implementiert, musst du beforeAction() nicht in jedem deiner controller definieren, das nennt sich vererbung
für mich ist ein FrontController die index.php, also CWebApplication
0

#7 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 608
  • Joined: 08-May 09

Posted 08 December 2012 - 07:46 AM

du kannst das Formular aber auch in einem Widget in deinem Layout platzieren
ist glaub ich die bessere Wahl
0

#8 User is offline   beatcode 

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

Posted 08 December 2012 - 08:35 AM

Super danke, dann ist mir der Begriff Vererbung nun auch endlich klar Posted Image
0

#9 User is offline   Mike 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 3,016
  • Joined: 06-October 08
  • Location:Upper Palatinate

Posted 10 December 2012 - 03:21 AM

Ich seh das etwas anders: Nur weil das Suchformular überall zu sehen sein soll, heißt das doch noch lange nicht, dass auch die zugehörige Action in jedem Controller vorhanden sein muss. Ich würde das Suchformular immer zur selben Action submitten lassen. Das Suchergebnis soll doch vermutlich auch immer gleich aussehen. Da tust du dich mit einer dedizierten Action dafür doch wesentlich leichter.
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