Yii Framework Forum: Model A Mssql Server Views - Yii Framework Forum

Jump to content

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

Model A Mssql Server Views Rate Topic: -----

#1 User is online   rdvitka 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 06-December 13
  • Location:Krakow, Poland

Posted 12 December 2013 - 08:19 AM

Witam,

Pracuję nad aplikacją, która współpracuje z bazą MSSQL 2008. Jednym z zadań jest stworzenie wyszukiwarki produktów. Dane do wyszukiwarki będą pobierane przy pomocy widoków (views), po czym wyświetlane w CGridView. Dla przykładu dane jakie mają być zwrócone to: numer_pozycji, nazwa, ilosc_dostepna, magazyn i cena. Przy czym cena będzie dodatkowo wyliczana przy pomocy procedury.

Czy dla tego typu funkcjonalności należy tworzyć model?, w którym zostaną utworzone metody pobierające dane np.: przy pomocy createCommand. Czy wykonywać to w kontrolerze?

pozdrawiam
0

#2 User is offline   .viktor. 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 90
  • Joined: 25-August 10
  • Location:Sokołów Podlaski, Poland

Posted 12 December 2013 - 08:30 AM

Cześć
Ja w przypadku kiedy nie korzystam z modelu (za duże obciążenie przy skomplikowanych zapytaniach),to korzystam z zapytań sql bezpośrednio do bazy i potem wrzucam wynik do CArrayDataProvider żeby móc wyświetlić to w CGridView.
Przeważnie na wszystkie tabele w bazie tworzę odpowiednie modele, więc kod do generowania CArrayDataProvider wrzucam jako metodę danego modelu. Model lub CArrayDataProvider przekazuję w kontrolerze jako zmienną do widoku.
0

#3 User is online   rdvitka 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 06-December 13
  • Location:Krakow, Poland

Posted 12 December 2013 - 10:21 AM

.viktor. dzięki, a co w przypadku gdy nie chcę generować modelu CActiveRecord dla tabel, które łącze w views gdyż dane z nich używam tylko do wyświetlania?


Na ta chwilę stworzyłem klasę Search w katalogu models, która nie dziedziczy po CActiveRecord. Coś takiego:


class Search
{

    public function search()
    {
        $products = Yii::app()->db2->createCommand()
                ->select()
                ->from('KRproducts')
                ->where('stock > 0')
                ->limit(40)
                ->queryAll();

        $dataProvider = new CArrayDataProvider($products, array(
            'keyField' => 'itemnumber',
            'pagination' => false,
        ));
        return $dataProvider;
    }

    public static function getPrice($customerNumber, $itemnumber)
    {
        $command = Yii::app()->db2->createCommand("exec getPrice '$customerNumber','$itemnumber'");
        return $command->queryScalar();
    }

}


czy moje podejście jest prawidłowe?
0

#4 User is offline   .viktor. 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 90
  • Joined: 25-August 10
  • Location:Sokołów Podlaski, Poland

Posted 12 December 2013 - 10:40 AM

Oczywiście, że tak.
Robię podobnie, klasę z metodami statycznymi, bardziej ukierunkowaną jako helper dla całej aplikacji, ale to kwestia potrzeb.
0

#5 User is online   rdvitka 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 06-December 13
  • Location:Krakow, Poland

Posted 12 December 2013 - 10:49 AM

Bardzo dziękuję!
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