Yii Framework Forum: Kezdő Kérdés - Yii Framework Forum

Jump to content

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

Kezdő Kérdés Rate Topic: -----

#1 User is offline   Comal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 07-November 12

Posted 09 November 2012 - 01:44 PM

Sziasztok!

Most ismerkedek a Yii frameworkel. Próáltam pár tutorialt végigvinni (blog, pár youtube video), de mindig elakadok, mert olyan hibát kapok ami nincs részletezve a tutorialban, így sosem jutok a végére.
Legutóbb ezt próbáltam: [www].youtube[.]com/watch?v=58LjNDXY-PE de 'Trying to get property of non-object ' hibát kapok.

Egyenlőre cak annyit szeretnék, hogy egy albumlistát megjelenítsek.

Van 3 táblám:

tbl_categories: id, categoria
tbl_Authors: id, name
tbl_Albums: id, albumName, authorname, categoria

Mindhárom táblában az id a PK. tbl_Albums.authorName=tbl_Authors.id, tbl_Albums.categoirra=tbl.Categories.id

Biztos nem lehet nehéz, csak nem jövök rá hogy hol akadok el.

Megköszöném, ha tudna valaki segíteni.
0

#2 User is offline   phtamas 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 529
  • Joined: 26-February 11
  • Location:Mezőtúr, Hungary

Posted 10 November 2012 - 06:06 AM

View PostComal, on 09 November 2012 - 01:44 PM, said:

Sziasztok!

Most ismerkedek a Yii frameworkel. Próáltam pár tutorialt végigvinni (blog, pár youtube video), de mindig elakadok, mert olyan hibát kapok ami nincs részletezve a tutorialban, így sosem jutok a végére.
Legutóbb ezt próbáltam: [www].youtube[.]com/watch?v=58LjNDXY-PE de 'Trying to get property of non-object ' hibát kapok.


Üdv a fórumon!

A hibaüzenetben nincs semmi Yii-specifikus, sima PHP hiba. Yii::trace() vagy var_dump() segítségével meg tudod nézni, hogy mit tartalmaz a vátozód (vagy milyen eredményt ad vissza a kifejezésed) aminek az objektumpéldányt kellene.
Ha bemásolod a hibás kódrészletet és a stack trace-t, akkor valószínűleg többet is tudok segíteni.

View PostComal, on 09 November 2012 - 01:44 PM, said:

Biztos nem lehet nehéz, csak nem jövök rá hogy hol akadok el.


Amig te nem jöttél rá, hogy hol akadtál el, addig segíteni is nagyon nehéz :) Kicsit több infó kellene arról, hogy hogyan próbáltad eddig, és meddig jutottál.
0

#3 User is offline   Comal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 07-November 12

Posted 10 November 2012 - 01:17 PM

View Postphtamas, on 10 November 2012 - 06:06 AM, said:

Üdv a fórumon!

A hibaüzenetben nincs semmi Yii-specifikus, sima PHP hiba. Yii::trace() vagy var_dump() segítségével meg tudod nézni, hogy mit tartalmaz a vátozód (vagy milyen eredményt ad vissza a kifejezésed) aminek az objektumpéldányt kellene.
Ha bemásolod a hibás kódrészletet és a stack trace-t, akkor valószínűleg többet is tudok segíteni.



Amig te nem jöttél rá, hogy hol akadtál el, addig segíteni is nagyon nehéz :) Kicsit több infó kellene arról, hogy hogyan próbáltad eddig, és meddig jutottál.


Csináltam magamnak egy példát, és annyit szeretnék, hogy ahol kell megjelenjenek a zenekar nevei, ill. a stílusok neve, ne az id-k jelenjenek meg.

az aulbums modelben csináltam egy relációt:
'authors'=>array(self::BELONGS_TO, 'Authors', 'id'),

A youtube példában a szerző hasonló módon jelenítette meg az adatokat:
_view.php:

<?php echo CHtml::encode($data->authors->name); ?>

Az eredményemet az index.html fájlban látjátok.
Mellékeltem a táblákat is.

Attached File(s)


0

#4 User is offline   Comal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 07-November 12

Posted 12 November 2012 - 08:09 AM

Senki? :mellow:
0

#5 User is offline   phtamas 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 529
  • Joined: 26-February 11
  • Location:Mezőtúr, Hungary

Posted 12 November 2012 - 03:30 PM

View PostComal, on 10 November 2012 - 01:17 PM, said:

az aulbums modelben csináltam egy relációt:
'authors'=>array(self::BELONGS_TO, 'Authors', 'id'),


Ez így biztosan nem lesz jó. A reláció-definícióban mindig az idegen kulcsot tartalmazó oszlop nevét kell megadni. Az "id" nyilvánvalóan nem az, viszont a "tbl_albums" tábládban nem is látok ilyen idegen kulcsot, úgyhogy azt előbb hozzá kellene adni. Ezek után valahogy így fog kinézni a reláció:
'author' => array(self::BELONGS_TO, 'Authors', 'authorId'),

0

#6 User is offline   Comal 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 07-November 12

Posted 14 November 2012 - 12:27 PM

View Postphtamas, on 12 November 2012 - 03:30 PM, said:

Ez így biztosan nem lesz jó. A reláció-definícióban mindig az idegen kulcsot tartalmazó oszlop nevét kell megadni. Az "id" nyilvánvalóan nem az, viszont a "tbl_albums" tábládban nem is látok ilyen idegen kulcsot, úgyhogy azt előbb hozzá kellene adni. Ezek után valahogy így fog kinézni a reláció:
'author' => array(self::BELONGS_TO, 'Authors', 'authorId'),



Bent van, csak véletlenül kitöröltem azt a sort. :S
Köszi, Átnézem mégegyszer.
0

#7 User is offline   Fis 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 25-April 13

Posted 29 September 2013 - 02:05 PM

Sziasztok!

Tanácsotokat, segítségeteket szeretném kérni egy pizzarendelő alkalmazásnak az adatmodelljéhez.
Hosszabb tervezést követően a csatolt fájl alapján elkészítettem egy adatbázist ami működhetne már( 4.5.009-es verzió körülbellül).
Viszont a kapcsolatok kódba égetése közben ismét elbizonytalanodtam, megkérdőjeleztem az adatbázis helyességét.
A problémám az lenne, hogy hogyan tudok összekapcsolni egy modellen belül 4db táblát? Konkrétan kiszeretném íratni az adott felhasználó rendeléseit a termék nevével és kiszerelésével együtt. Yii-s kapcsolatok típusait átnéztem, de egyelőre nem tudom megoldani a problémát.
Másik dilemma a kosár kezelés: adatbázis táblával vagy anélkül? Vagy mind2-vel?
Yii melyiket preferálja? Átnéztem a Yii-Shop bővítményt, de kosár adattáblát nem találtam a kigenerált adatbázisban.

Nagyon köszönöm előre is a segítséget!

Attached File  adatb_terv.png (65.43K)
Number of downloads: 8
0

#8 User is offline   fg92 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 17-May 14

Posted 17 May 2014 - 08:52 AM

üdv baromi kezdő vagyok és egy alap dologra nem tudok rájönni.

adott egy menüpont, pl Bemutatkozás . erre kattintva a bemutatkozas.php töltődik be. ebbe az oldalba adatbázis tartalmat hogyan tudok betöltetni? nyilván egy egyszerű lekérdezésről és kiíratásról van szó de sehogy sem tudom összerakni.
0

#9 User is offline   Argent 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 81
  • Joined: 23-February 13
  • Location:Hungary

Posted 17 May 2014 - 06:20 PM

Hali!

Nagyjából lépésről-lépésre:

- ha rendesen hoztál létre webalkalmazást (értsd: konzolban "yiic webapp név") akkor a configban (protected/config/main.php) állítsd be az adatbázis kapcsolatodat - mysql esetén elég a
/*
'db'=>array(
	'connectionString' => 'mysql:host=localhost;dbname=testdrive',
	'emulatePrepare' => true,
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
),
*/

részből kivenni a kommentet és átírni a dbname-t, username-t és password-öt - felette lévő sqlite-os adatbázis kapcsolatot kommenteld, vagy töröld ki - lényeg, hogy csak egy 'db' legyen a components array-ben.

- hogy ne kelljen mindent kézzel csinálni a yii tartalmaz egy generátort is - ez a gii - ezt a fenti main.php-ben kell engedélyezni: modules részben a 'gii' körül vedd ki a kommentet és írj be valami jelszót

- mentés után a böngészőben hozd be a gii-t: www.domained.hu/webappod/index.php?r=gii - majd írd be a jelszót

- Controller generatorban add meg a controller id-jét: "bemutatkozas" majd Preview és generate - "try it now"-ra kattintva rögtön meg is tudod nézni, vagy a www.domained.hu/webappod/index.php?r=bemutatkozas -ra mész. A controllert itt találod: protected/controllers/BemutatkozasController.php a létrehozott view-t pedig a protected/views/bemutatkozas/index.php-ben.

A controllerben szokás az adatot lekérni a modellen keresztül majd átadni a view-nak a render() hívásában.

Yii-ben többféleképpen tudsz az adatbázisból adatot lekérni: Active Record, DAO vagy Query Builder - ezekről bővebben a guide-ban tudsz olvasni (guide:database) - nem látok bele az adatbázisodba, így majd kiválasztod a neked legjobban megfelelőt. Active Record esetén a gii-vel ki lehet generálni a modelt - Model generatorra kell kattintani és meg kell adni a táblanevet.

- szóval az BemutatkozasController-ben az actionIndex()-ben lekéred az adatot majd átadod:

class BemutatkozasController extends Controller
{
	public function actionIndex()
	{
		// pár példa:

		// Active Record
		// $model = Page::model()->findByPk(1);
		// $szoveg = $model->szoveg;
		
		// vagy
		// DAO
		// $szoveg = Yii::app()->db->createCommand("SELECT szoveg FROM tábla WHERE id = :id")->queryScalar(array(":id" => 1));
		
		// vagy
		// Query Builder
		// $szoveg = Yii::app()->db->createCommand()->select("szoveg")->from("tábla")->where("id = :id", array(':id' => 1))->queryScalar();

		// ezt kommenteld majd ki
		$szoveg = "Ez a szöveg jön majd adatbázisból";

		$this->render('index', array(
			'szoveg' => $szoveg
		));
	}
}

és a view-ban (protected/views/bemutatkozas/index.php) kiíratod:
<?php echo $szoveg ?>


- majd berakod a menübe (alapból a protected/views/layouts/main.php-ben van):
array('label'=>'Bemutatkozás', 'url'=>array('/bemutatkozas/index')),


Tipp: érdemes elmerülni a guideban, tutorialokban és könyvekben, megnézni a 4 részes videósorozatot - illetve jobban megnézni, hogy mi a MVC.

(ui: a fenti createCommand-os lekéréseket jobb lenne egy külön (model) osztályba rakni - nem akartam ezzel bonyolítani a példát)
0

#10 User is offline   fg92 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 17-May 14

Posted 19 May 2014 - 03:57 AM

köszi
és a $szoveg = "Ez a szöveg jön majd adatbázisból"; helyére kell választanom a három lekérdezés közül? valahogy még mindig nem állt össze. folyamatos hibákat kapok.
0

#11 User is offline   fg92 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 17-May 14

Posted 19 May 2014 - 04:04 AM

jóó bamba voltam, Megoldottam! :) köszöntem szépen
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