Tippek, trükkök, ötletek

Nem tudom. Utánanézek.

A gii által létrehozott kódot nézd meg, az alapvetően jól tolja az adatokat a view-ba. Azt alakítsd át és tedd be a saját metódusodba.

A view-ban a CGridView widgetnek két fontos paramétere a ‘filter’ és a ‘dataProvider’. Egyik a $model a controllerből, a másik a $model->search().

Annyit csinálj, hogy terjeszd ki a $model->search() által visszaadott CActiveDataProvider objektumot a controllerben, majd ezt told bele a view-ba.

Valahogy így:


$dataProvider->criteria->compare('id', '<5');

Köszönöm, működik :)

Hi,

Olyan kérdésem lenne, hogy hogyan lehetne integrálni a yii-be a doctrinet mert láttam extension-ban ilyesmit kipróbáltam de nem működött a dolog. Mi lehet az oka? Lehetséges, hogy a mostani verzióval nem kompatibilis? Van-e más megoldás az integrálásra és ha van akkor miként lehet megvalósítani? Esetleg van-e tutorial.

A válaszokat előlre is köszönöm!

Rákerestem az extensionre, 0.1 a verzió, 2009-ből, azt hiszem felejtős.

Vendorként importálva itt működésre bírták:

http://www.yiiframework.com/forum/index.php?/topic/767-doctrine-framework-in-yii-framework/

hali,

mondjuk ez nem olyan fejlett mint a Doctrine, de egyszeru DB Migraciokhoz en ezt szoktam hasznalni (Yii-DB-Migartions)

Ja, es meg magyar leiras is van hozza :)

De egyebkent az uj 1.1.6-os verzioban mar jon a beepitett DB Migrations (azt ne kerdezd, hogy miert nem a Doctrine-t importaltak)

–iM

Kipróbálom hátha beválik.

Sziasztok szeretném a segítségeteket kérni.

A problémám hogy megy az URL rövidités, csak

mikor a linkre kattintok 404 es hibát dob a szerver Apache hiba oldal :S nem Yii-s :S

main.php:


urlManager'=>array(

            'urlFormat'=>'path',

            'urlSuffix'=>'.html',

            'showScriptName'=>false,

            'rules'=>array(

            	'pattern1'=>'index.php',

                'pattern2'=>'route2',

                'pattern3'=>'route3',

            ),

        ),

link létrehozás:




<?php echo Yii::app()->createUrl('Hirek'); ?>



ennek eredménye egy ilyen url:

http://domain.hu/Hirek.html

Viszont ha az ‘urlFormat’=>‘path’, értékét get-re álítom akkor viszont yii-s 404-es hibát kapok vissza ami ugye azt jelenti hogy legalább értelmezte a linket :-S

még annyi hogy van egy .htaccess a gyökér mappában :




Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on


# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d


# otherwise forward it to index.php

RewriteRule ^.*$ index.php [L]



RewriteEngine Apache-ban engedélyezve van utána néztem.

Előre is köszönöm a segítségeteket.

És tuti működik? Előfordulhat az, hogy előállítja az url-ket, de megtalálni azt már nem sikerül neki.

Itt van egy teszt rá.

Az a gonf hogy keresi a hirek.html filet a gyökér mappában,de én azt szeretném hogy a view mappában kerese meg a hirek.php-t :S

Az az igazság, h én még sosem piszkáltam az url részét a Yii-nek, de




            'urlSuffix'=>'.html',

            'showScriptName'=>false,

ez nem mond ellent egymásnak?


 'urlSuffix'=>'.html',

ezt a részt már ki vettem…

olyan mintha nem is dolgozná fel az URL-t, hanem keresi mintha rendes elérési út lenne, szerintem a htaccess-ben van a hiba vagy nem tudom :S


'showScriptName' => true,

Ez a sor kavar be h ez true akkor YII-s 404-es hiba jön ki ami jó mert feldolgoza az url-t

ha FALSE akkor meg apache 404-es hiba ami azt jelenti, hogy próbálja a mappát direckbe elérni :S

pedig jó lenne ha az index.php eltünne az URL-ből ez pedig úgy lehetséges hogy a showScriptName értéke TRUE.

szerintem rossz a htaccess file :S

Kipróbáltad a tesztet, amit linkeltem?

Köszönöm igazad volt, a localserver-emmel volt a gond.

Lenne még itt valami amit nem teljesen értek, hogy lehetne megcsinálni.

most így néz ki egy link :

http://www.domain.hu/site/Arany/termekek

SiteController-ben lövöm be a render metodusokat és a views/site mappába pakolom a cuccot.

miként lehetne eltüntetni a /site/ jelzőt az URL-ből ?

::)

Előre is köszönök mindent :rolleyes:

sziasztok!

mivel most nincs időm foglalkozni a yii-vel, várakozó álláspontra helyezkedek. illetve előbb még kérdezek valamit, de valszeg tudom a választ.

megmondom mi lenne a legjobb. amikor mentem végig a könyvön, végig az érdekelt, mikor érünk már el arra a pontra amikor egy mysql tábla adatait megjelenítő oldal kibővül egy másik, kapcsolódó tábla adataival. vagyis valahogy az átmenet, a kapcsolódás ott van a lehető legegyszerűbben. ha még nincs kapcsolódó adat akkor egy NEW ikon, ha van akkor EDIT+NEW. hogyan oldható meg yii-ben ez a része a dolgoknak. és egy kicsit csalódott voltam mert kicsit túl sokat kellett hegeszteni, és nem is értettem kristálytisztán hogy mit miért. ez persze engem is minősít hiszen nem vagyok túlságosan képben se az oop-val sem a php-val, csak amennyire magamtól tellett. biztos aki ezeket a dolgokat nagyon vágja, az azt mondja hogy a yii már így is nagyon jó és nagyon sokat segít.

de a lényeg az, hogy el tudnék képzelni olyan framework-öt, el tudnám képzelni a yii-t olynnak, ami sokkal elegánsabban megoldja ahogy a mysql táblák egymáshoz kapcsolódnak. a kérdésem az lenne hogy benne van-e jelenleg a yii-ben ez a bizonyos elegancia, csak én nem jutottam el odáig, vagy nincs benne, és nem is lesz, és egyáltalán hülyeségeket beszélek. nem tudom érthető-e amit kérdezni szeretnék vagy amit szeretnék, de úgy képzelem hogy a jövőben laikusok számára is sokkal egyszerűbben alkalmazható eszköz kell szülessen ahhoz hogy igazi áttörést érjen el bármilyen framework. remélem van vagy volt vagy lesz ilyen.

igazábol én egy adatabázis alapú webes alkalmazást szeretnék építeni. a kulcsa az egésznek az adatbázis felépítése. nekem pl. a php csak a szükséges rossz. nagyon örültem amikor láttam hogy a yii csuklóbol generál egy oldalt ahol a tábla adatai szerkeszthetőek. még a kapcsolódó legördülőket is meg tudtam oldani, de valahogy ezt sokkal egyszerűbben is el tudnám képzelni. valami adminisztratív felületen kiválaszthatná az ember hogy hova milyen beviteli mezőt akar, és hogy az melyik táblából vehesse az adatokat. ennek sztem lehetne egy felületet adni. és még annak is talán a hasznára válna aki egyébként szeret kódolni.

butaságokat beszélek?

Üdv mindenkinek!

Most találtam a Yii-re, most Drupal-t használok, régebben CakePHP-vel is foglalkoztam. Az utóbbit akkor adtam fel, amikor sehogy se fért a fejembe, hogyan kell megoldanom a következő szituációt:

Van három táblám: entity, attribute, value (mindegyikhez egy-egy model osztály)

és van egy kapcsolótáblám: entity_attribute_value

Mi van az egyes osztályok relations() függvényében?

Entity:


return array(

   'attribute' => array(self::MANY_MANY, 'Attribute', 'entity_attribute_value(entity_id, attribute_id)');

   'value' => array(self::MANY_MANY, 'Value', 'entity_attribute_value(entity_id, value_id)');

);

Attribute:


return array(

   'entity' => array(self::MANY_MANY, 'Entity', 'entity_attribute_value(attribute_id, entity_id)');

   'value' => array(self::MANY_MANY, 'Entity', 'entity_attribute_value(attribute_id, value_id)');

);

Value:


return array(

   'entity' => array(self::MANY_MANY, 'Entity', 'entity_attribute_value(value_id, entity_id)');

   'attribute' => array(self::MANY_MANY, 'Attribute', 'entity_attribute_value(value_id, attribute_id)');

);

Vagy pedig létre kell hozni egy model osztályt (EntityAttributeValue) a kapcsolótáblának is és akkor nem MANY_MANY kapcsolatok vannak az egyes osztályok között, hanem HAS_MANY és BELONGS_TO az egyes osztályok és a kapcsolótábla között? Például

Entity:


return array(

   'entity_attribute_value' => array(self::HAS_MANY, 'EntityAttributeValue', 'entity_id');

);

EntityAttributeValue:


return array(

   'entity' => array(self::BELONGS_TO, 'Entity', 'entity_id');

);

Vagy a harmadik eset: mindenképp létre kell hozni a kapcsolótáblának egy saját osztályt.

Köszönettel:

UI.: Ja és még valami. A gii-nek a model-ek generálásakor meg kéne találnia az idegen kulcsokat? Mert a tábláimban benne van, de a relations() függvények minden model-ben üresek.

Hali, remelem ez a leegyszerusitett pelda segit:




++++++++++++++                     +++++++++++++

|  TABLE A   |                     +  TABLE B  +

++++++++++++++                     +++++++++++++

| id         |---  +++++++++++  ---| id        |

| name       |  |  + A_AND_B +  |  | something |

++++++++++++++  |  +++++++++++  |  +++++++++++++

                -->| aID     |  |

                   | bID     |<--

                   +++++++++++



ss maga az ossze-kapcsolodas




  // TABLE A relations

  return array(

    'tableb' => array( self::MANY_MANY, 'TABLE B', 'A_AND_B(aID,bID)' )

  )



meg ha megy az angol meg ezt a hozzaszolast ajanlanam:

http://www.yiiframework.com/forum/index.php?/topic/8011-many-many-how-to-select-some-fields-from-the-link-table

–iM

Köszönöm, közben én is úgy látom, hogy a kapcsolótáblához nem kell model. Próbálkozom, aztán lesz, ami lesz…

Megoldható az yii-vel, hogy a modelben kapjak infót arról, hogy a view-ban egy adott dropdown listában milyen érték van kiválasztva? Mindezt anélkül, hogy elküldeném a form adatait. (a lista elemeinek kiválasztásánál ajax-al küldöm el.)




//ország dropdown.

echo $form->dropDownList($profile,$field->varname,Profile::range($field->range),

array(

	'ajax' => array(

	'type'=>'POST', //request type

	'url'=>CController::createUrl('user/getRegionList'), //url to call.

	'update'=>'#Profile_region', //selector to update

)));



A modelben szükségem lenne rá, hogy tudjam, mit választottak ki az "ország" dropdown-ban, ettől függően állítanám be az ország értékétől függő "régió" dropdown ellenőrzését a rules() metódusban.

Arra gondoltam, session-be menteném az ország mező értékét, és a modelben innen olvasnám meg, de biztosan létezik elegánsabb megoldás.

jav: a session megoldás nem működik, mivel az oldal újratöltése nélkül nem érhető el a session-be újonnan elmentett adat.