Yii Framework Forum: Problem z funkcją search - Yii Framework Forum

Jump to content

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

Problem z funkcją search Rate Topic: -----

#1 User is offline   Nobody 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 05-May 10

Posted 24 August 2010 - 02:31 AM

Witam,

Mam dwie tabele, Domeny (id, domeny) i Users (id, users, domeny_id). Na podstawie poniższego kodu realizuje aby po wybraniu konkretnej domeny wyświetlało mi userów do niej przypisanych. Wszystko działa OK prócz wyszukiwania :( natomiast jak odkomentuje 'criteria'=>$criteria, w CActiveDataProvider to wyszukiwanie działa ale za to po wybraniu domeny z tabeli users wywala mi wszystkie rekordy. Dane wyświetlam w widoku CGridView.

Poniżej kod z modelu Users oraz vidoku CGridView.



        public function search()
        {
                // Warning: Please modify the following code to remove attributes that
                // should not be searched.

                $criteria=new CDbCriteria;

                $criteria->compare('id',$this->id);

                $criteria->compare('users',$this->users,true);

                return new CActiveDataProvider('Users', array(
                    'criteria'=>array(
                    'condition'=>'domena_id LIKE :id',
                    'params'=>array(':id'=>$_GET['id']),
                    'with'=>array('domeny'),
                    ),
//                      'criteria'=>$criteria,
                ));
        }
}





<?php $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'users-grid',
        'dataProvider'=>$model->search(),
        'columns'=>array(
                    'name'=>'users',

        ),
)); ?>



Jeśli któs mógłby mnie naprowadzić na rozwiązanie byłbym bardzo wdzięczy.
0

#2 User is offline   aztech 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 206
  • Joined: 12-December 08
  • Location:Poland

Posted 25 August 2010 - 12:27 AM

Popraw na
'condition'=>'domena_id LIKE %:id%',
'params'=>array(':id'=>$_GET['id']),

//albo na 
'condition'=>'domena_id LIKE :id',
'params'=>array(':id'=>"%".$_GET['id']."%"),

P.S. Zawsze zapominam w jaki sposób to jest zaimplementowane w Yii :)




I'm not complete idiot... some parts are missing!
0

#3 User is offline   Nobody 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 05-May 10

Posted 25 August 2010 - 04:22 AM

Niestety nie pomogło :(
0

#4 User is offline   Nobody 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 05-May 10

Posted 27 August 2010 - 03:28 AM

Udało mi się rozwiązać problem :)


        public function search()
        {
                // Warning: Please modify the following code to remove attributes that
                // should not be searched.

                $criteria=new CDbCriteria;

                $criteria->condition = 'domena_id LIKE :id';
                $criteria->params = array(':id'=>"%".$_GET['id']."%");
                $criteria->with = array('domeny');
                $criteria->compare('users',$this->users,true);
                $criteria->compare('id',$this->id);

                return new CActiveDataProvider('Users', array(
                    'criteria'=>$criteria,
                ));
        }


0

#5 User is offline   aztech 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 206
  • Joined: 12-December 08
  • Location:Poland

Posted 29 August 2010 - 04:14 PM

Wiesz... strasznie to rozwiązanie przypomina mi moją sugestię :)
I'm not complete idiot... some parts are missing!
0

#6 User is offline   Nobody 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 05-May 10

Posted 03 September 2010 - 03:27 AM

View Postaztech, on 29 August 2010 - 04:14 PM, said:

Wiesz... strasznie to rozwiązanie przypomina mi moją sugestię :)


No rzeczywiście tylko kolejność musiałem zamienić :)

Mam jeszcze jeden problem, nie wiem jak zmusić kolumnę w CGridView aby nie przekraczała konkretnej szerokości, domyślnie jest, że jakby się długiego tekstu nie wrzuciło to rozwali go na pół ekranu :( Może ktoś wie jak to rozwiązać? próbowałem za pomocą htmloptions ale nieskutecznie.
0

#7 User is offline   Trejder 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,197
  • Joined: 06-October 10
  • Location:Southern Poland

Posted 08 November 2010 - 05:37 AM

View PostNobody, on 03 September 2010 - 03:27 AM, said:

Mam jeszcze jeden problem, nie wiem jak zmusić kolumnę w CGridView aby nie przekraczała konkretnej szerokości, domyślnie jest, że jakby się długiego tekstu nie wrzuciło to rozwali go na pół ekranu :( Może ktoś wie jak to rozwiązać? próbowałem za pomocą htmloptions ale nieskutecznie

Tabela w CGridView to AFAIK zwykła tabela HTML. A tak z kolei domyślnie łamie zbyt długie teksty wielolinijkowo. Sprawdź czy nie masz przypadkiem twardych spacji (nbsp) zamiast zwykłych i dlatego rozwala ci komórkę tabeli.
Proud Cookbook author, though still learning powerful Yii! :] See my generic profile for more information. Cheers!
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