Yii Framework Forum: [ERLEDIGT] - SQL-Ausgabe - Yii Framework Forum

Jump to content

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

[ERLEDIGT] - SQL-Ausgabe Rate Topic: -----

#1 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 03 October 2009 - 08:54 AM

Hi, ich habe eine MANY-MANY-MANY - Beziehung um diese zu kontrollieren, würde ich mir gerne via print_r() oder ähnlich das SQL-STATEMENT ausgeben lassen.

Kennt jemand eine Methode?
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#2 User is offline   Mike 

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

Posted 03 October 2009 - 12:06 PM

Aktivier doch einfach CWebLogroute, dann siehst du deine ganzen Queries am Ende der Seite.
0

#3 User is offline   mbi 

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

Posted 03 October 2009 - 05:44 PM

http://blog.mbischof...ofiling-mit-yii
0

#4 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 03 October 2009 - 06:40 PM

passieren tut leider nichts.

	'components'=> array(
		'log' => array(
			'class' => 'CLogRouter',
			'routes' => array(
				array(
					'class'	=> 'CFileLogRoute',
					'levels'=> 'error, warning',
				),
				array(
					'class' => 'CWebLogRoute'
				),
			),
		),
		'user'=>array(
			// enable cookie-based authentication
			'allowAutoLogin'=>true,
		),
		'db' => array(
			'connectionString'	=> 'xxx',
			'charset'			=> 'utf8',
			'username'			=> 'xxx',
			'password'			=> 'xxx',
			'enableProfiling'	=> true,
		),
		'urlManager'=> array(
		),
	),

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#5 User is offline   Mike 

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

Posted 04 October 2009 - 04:14 AM

@mbi:
Eigentlich gehts noch einfacher. enableProfiling brauchst du nur,wenn du die verbratene Zeit für die Statements mit messen willst. Damit die Ergebnisse angezeigt werden, braucht man dann aber auch eine CProfileLogroute.

@yii:
Hast du log in der Konfiguration unter preload mit aufgeführt?

Die Minimalkonfiguration sieht so aus:

    'preload'               => array('log'),

    'components'=>array(

        'db'=>array(
            'connectionString' => '*****',
            'username' => '*****',
            'password' => '*****',
            //'enableParamLogging' => true,  // Logt die verwendeten Parameter
        ),

        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class'=>'CWebLogRoute'
                ),
            ),
        ),
    ),


Will man die verwendeten Parameter mit loggen, kann man noch enableParamLogging aktivieren.
0

#6 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 04 October 2009 - 09:18 AM

Meine Konfiguration. Muss im View irgendetwas aufgerufen? echo DEBUG-Meldung?

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
	'basePath'	=> dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
	'name'		=>'xxx |',

	// preloading 'log' component
	'preload'	=> array('log'),

	// autoloading model and component classes
	'import'	=> array(
		'application.models.*',
		'application.components.*',
	),

	// application components
	'components'=> array(
		'log' => array(
			'class' => 'CLogRouter',
			'routes' => array(
				array(
					'class'	=> 'CFileLogRoute',
					'levels'=> 'error, warning',
				),
				array(
					'class' => 'CWebLogRoute'
				),
			),
		),
		'user'=>array(
			// enable cookie-based authentication
			'allowAutoLogin'=>true,
		),
		'db' => array(
			'connectionString'	=> 'xxx',
			'charset'			=> 'utf8',
			'username'			=> 'xxx',
			'password'			=> 'xxx',
			'enableProfiling'	=> true,
		),
		'urlManager'=> array(
		),
	),

	// application-level parameters that can be accessed
	// using Yii::app()->params['paramName']
	'params'=>array(
		// this is used in contact page
		'adminEmail'=> 'xxx',
		'homepage'	=> 'xxx',
		'url'		=> 'xxx',
	),
);

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#7 User is offline   Mike 

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

Posted 04 October 2009 - 09:23 AM

Im View nicht, aber hast recht: Das Log erscheint nur im DEBUG-Mode. Also schreib sowas in deine index.php:

defined('YII_DEBUG') or define('YII_DEBUG',true);

0

#8 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 04 October 2009 - 09:32 AM

defined('YII_DEBUG') or define('YII_DEBUG',true);


Diese Zeile habe ich jeweils in folgenden Dateien getestet

  • layouts/main.php
  • site/index.php
  • config/main.php
  • yiic.php


Application Log
Timestamp 	Level 	Category 	Message
16:43:08.865984 	trace 	system.web.CModule 	

Loading "log" application component

16:43:08.870970 	trace 	system.web.CModule 	

Loading "request" application component

16:43:08.875394 	trace 	system.web.CModule 	

Loading "urlManager" application component

16:43:08.910824 	trace 	system.web.CModule 	

Loading "clientScript" application component


Die Ausgabe erfolgt jedoch nur auf der Startseite, mmh?
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#9 User is offline   Mike 

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

Posted 04 October 2009 - 10:04 AM

Probiers mal in der index.php. In den Viewfiles ist es zu spät, weil die erst beim Rendern eingebunden werden.
0

#10 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 04 October 2009 - 05:32 PM

meine index.php

<?php

// change the following paths if necessary
$yii=dirname(__FILE__).'/../yii/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';

// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);

require_once($yii);
Yii::createWebApplication($config)->run();


Dennoch erscheint das "Anwendungsprotokoll" nur bei
http://localhost/blog2/index.php?r=site/index

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#11 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 06 October 2009 - 08:26 AM

Du hast immernoch keine CProfileLogRoute angegeben...
0

#12 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 06 October 2009 - 08:32 AM

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
        'basePath'      => dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'          =>'xxx |',

        // preloading 'log' component
        'preload'       => array('log'),

        // autoloading model and component classes
        'import'        => array(
                'application.models.*',
                'application.components.*',
        ),

        // application components
        'components'=> array(
                'log' => array(
                        'class' => 'CLogRouter',
                        'routes' => array(
                                array(
                                        'class' => 'CProfileLogRoute',
                                        'levels'=> 'error, warning',
                                ),
                                array(
                                        'class' => 'CWebLogRoute'
                                ),
                        ),
                ),
                'user'=>array(
                        // enable cookie-based authentication
                        'allowAutoLogin'=>true,
                ),
                'db' => array(
                        'connectionString'      => 'xxx',
                        'charset'                       => 'utf8',
                        'username'                      => 'xxx',
                        'password'                      => 'xxx',
                        'enableProfiling'       => true,
                ),
                'urlManager'=> array(
                ),
        ),

        // application-level parameters that can be accessed
        // using Yii::app()->params['paramName']
        'params'=>array(
                // this is used in contact page
                'adminEmail'=> 'xxx',
                'homepage'      => 'xxx',
                'url'           => 'xxx',
        ),
);


kein Unterschied


Das Anwendungsprotokoll erscheint nur bei (site - Controller)
http://localhost/blog2/index.php?r=site/index

http://localhost/blog2/index.php?r=site/login

http://localhost/blog2/index.php?r=site/contact


Wenn ich zum Beispiel einen anderen Controller ausführe dann erscheint das Anwendungsprotokoll nicht mehr.
http://localhost/blog2/index.php?r=search/car

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#13 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 06 October 2009 - 10:03 AM

mach mal die levels weg bei der profile log route.
0

#14 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 06 October 2009 - 10:05 AM

nothing... :(
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#15 User is offline   yoshi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 170
  • Joined: 28-February 09
  • Location:Germany

Posted 06 October 2009 - 10:29 AM

Dann liegt das Problem aber woanders. Die Konfiguration ist richtig und es funktioniert beim Site-Controller ja auch.

Du beendest nicht zufällig jede action mit die() oder irgendwie sowas, oder?!
0

#16 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 06 October 2009 - 04:26 PM

Fehler gefunden, in meinen anderen Controllern funktioniert alles wunderbar.

Nur in diesem nicht, weil ich ein exit() ausführe.
Habe ich kein Ergebnis gefunden rufe ich einen anderen view auf. Führe ich kein exit() aus, so führt yii beide render() aus!
	if ( $results === null )
	{
		$this->setPageTitle("xxxx");
		$this->render('notFound',
			array(
			)
		);
		exit();
	}

	$this->setPageTitle("yyy");
	$this->render('search', 
		array(
			'aSimilar'		=> $aSimilar,
		) 
	);

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#17 User is offline   Dave 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 187
  • Joined: 09-October 08

Posted 07 October 2009 - 07:15 AM

Anstatt ein exit() kannst du auch einfach ein "return" benutzten, wenn du die action verlassen willst.
0

#18 User is offline   Mike 

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

Posted 07 October 2009 - 07:54 AM

View PostDave, on 06 October 2009 - 08:26 AM, said:

Du hast immernoch keine CProfileLogRoute angegeben...


Nur nochmal der Korrektheit halber: CProfileLogroute brauchst du nicht, um SQL-Statements auszugeben. Die ist nur für Zeitmessungen nötig..
0

#19 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 07 October 2009 - 09:13 AM

View PostDave, on 07 October 2009 - 07:15 AM, said:

Anstatt ein exit() kannst du auch einfach ein "return" benutzten, wenn du die action verlassen willst.


Danke, hat wunderbar funktioniert!!!!

View PostMike, on 07 October 2009 - 07:54 AM, said:

Nur nochmal der Korrektheit halber: CProfileLogroute brauchst du nicht, um SQL-Statements auszugeben. Die ist nur für Zeitmessungen nötig..


danke für die Info!
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
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